<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sdkwiki.wizarpos.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mahong</id>
	<title>wizarPOS - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://sdkwiki.wizarpos.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mahong"/>
	<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Special:Contributions/Mahong"/>
	<updated>2026-07-08T19:27:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5556</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5556"/>
		<updated>2026-07-08T06:25:03Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.9_2605251.apk Payment Emulator2.3.9]&lt;br /&gt;
* [https://ftp.wizarpos.com/paymentPayWizard_APP_V2.12.0-global-release.apk PayWizard_V2.12.0]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5555</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5555"/>
		<updated>2026-07-03T07:18:40Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[SDK杂记]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android-0603.zip Next指纹新的SDKnbbiometrics-scan-and-extract-sample-android-0603.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电, Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/RelayAndPulseDemo-init_modified260304.zip 源码relaypulsedemo][https://ftp.wizarpos.com/techsupport/software/relayDemo-1.0.exboard.apk relaypulsedemo apk] 调用exboard, 测试pulse（参数可设置），relay(参数不可设置)&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetoothtransactiondemo.zip 蓝牙发送交易的demo 源码，用来测试OPC的蓝牙协议] &lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetooth-transactiontest.apk 蓝牙发送交易的demo APK，用来测试OPC的蓝牙协议]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5554</id>
		<title>Payment App</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5554"/>
		<updated>2026-07-03T04:03:53Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Quick Start]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Debug Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Core Protocol|Core Protocol(Important Payment Communication Protocols)]]&lt;br /&gt;
&lt;br /&gt;
[[Payment Apps|Payment Apps(Usually installed by WizarPOS)]]&lt;br /&gt;
&lt;br /&gt;
[[Local Integration (External Device)|Local Integration (The VM and the POS communicate directly through serial port or network, etc.)]]&lt;br /&gt;
&lt;br /&gt;
[[Internal Integration (POS App Development)|Internal Integration (Develop POS APP and call AIDL)]]&lt;br /&gt;
&lt;br /&gt;
[[Cloud Mode Integration]]&lt;br /&gt;
&lt;br /&gt;
[[Payment App Development]]&lt;br /&gt;
&lt;br /&gt;
[[Common Feature Development]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/WizarPOS_Integration_Certification_Letter.docx WizarPOS_Integration_Certification_Letter.docx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/PAYwizardTestCasev1.0.xlsm PAYwizard Test Case v1.0.xlsm]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1l2oXztWAOHN48vEPOS_BQU1Q1HZuoWNz4RwcDHSygfo/edit?usp=sharing Cloud Integration Test Case]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1iFdDG9zqkNiNrM_-Me83XgAOViz-zGiH9xueBQlNWNY/edit?usp=sharing Aidl Intergration &amp;amp; Core Payment Test Case]&lt;br /&gt;
&lt;br /&gt;
[[Chinese Document]]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5553</id>
		<title>Payment App</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5553"/>
		<updated>2026-07-03T04:03:38Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Quick Start]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Debug Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Core Protocol|Core Protocol(Important Payment Communication Protocols)]]&lt;br /&gt;
&lt;br /&gt;
[[Payment Apps|Payment Apps(Usually installed by WizarPOS)]]&lt;br /&gt;
&lt;br /&gt;
[[Local Integration (External Device)|Local Integration (The VM and the POS communicate directly through serial port or network, etc.)]]&lt;br /&gt;
&lt;br /&gt;
[[Internal Integration (POS App Development)|Internal Integration (Develop POS APP and call AIDL)]]&lt;br /&gt;
&lt;br /&gt;
[[Cloud Mode Integration]]&lt;br /&gt;
&lt;br /&gt;
[[Payment App Development]]&lt;br /&gt;
&lt;br /&gt;
[[Common Feature Development]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/WizarPOS_Integration_Certification_Letter.docx WizarPOS_Integration_Certification_Letter.docx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/PAYwizardTestCasev1.0.xlsm PAYwizard Test Case v1.0.xlsm]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1l2oXztWAOHN48vEPOS_BQU1Q1HZuoWNz4RwcDHSygfo/edit?usp=sharing Cloud Integration Test Case]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1iFdDG9zqkNiNrM_-Me83XgAOViz-zGiH9xueBQlNWNY/edit?usp=sharing]&lt;br /&gt;
&lt;br /&gt;
[[Chinese Document]]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5552</id>
		<title>Payment App</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5552"/>
		<updated>2026-07-03T04:02:53Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Quick Start]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Debug Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Core Protocol|Core Protocol(Important Payment Communication Protocols)]]&lt;br /&gt;
&lt;br /&gt;
[[Payment Apps|Payment Apps(Usually installed by WizarPOS)]]&lt;br /&gt;
&lt;br /&gt;
[[Local Integration (External Device)|Local Integration (The VM and the POS communicate directly through serial port or network, etc.)]]&lt;br /&gt;
&lt;br /&gt;
[[Internal Integration (POS App Development)|Internal Integration (Develop POS APP and call AIDL)]]&lt;br /&gt;
&lt;br /&gt;
[[Cloud Mode Integration]]&lt;br /&gt;
&lt;br /&gt;
[[Payment App Development]]&lt;br /&gt;
&lt;br /&gt;
[[Common Feature Development]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/WizarPOS_Integration_Certification_Letter.docx WizarPOS_Integration_Certification_Letter.docx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/PAYwizardTestCasev1.0.xlsm PAYwizard Test Case v1.0.xlsm]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1l2oXztWAOHN48vEPOS_BQU1Q1HZuoWNz4RwcDHSygfo/edit?usp=sharing]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1iFdDG9zqkNiNrM_-Me83XgAOViz-zGiH9xueBQlNWNY/edit?usp=sharing]&lt;br /&gt;
&lt;br /&gt;
[[Chinese Document]]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5551</id>
		<title>Payment App</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5551"/>
		<updated>2026-07-03T04:02:35Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Quick Start]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Debug Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Core Protocol|Core Protocol(Important Payment Communication Protocols)]]&lt;br /&gt;
&lt;br /&gt;
[[Payment Apps|Payment Apps(Usually installed by WizarPOS)]]&lt;br /&gt;
&lt;br /&gt;
[[Local Integration (External Device)|Local Integration (The VM and the POS communicate directly through serial port or network, etc.)]]&lt;br /&gt;
&lt;br /&gt;
[[Internal Integration (POS App Development)|Internal Integration (Develop POS APP and call AIDL)]]&lt;br /&gt;
&lt;br /&gt;
[[Cloud Mode Integration]]&lt;br /&gt;
&lt;br /&gt;
[[Payment App Development]]&lt;br /&gt;
&lt;br /&gt;
[[Common Feature Development]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/WizarPOS_Integration_Certification_Letter.docx WizarPOS_Integration_Certification_Letter.docx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/PAYwizardTestCasev1.0.xlsm [ENG]PAYwizard Test Case v1.0.xlsm]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1l2oXztWAOHN48vEPOS_BQU1Q1HZuoWNz4RwcDHSygfo/edit?usp=sharing]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1iFdDG9zqkNiNrM_-Me83XgAOViz-zGiH9xueBQlNWNY/edit?usp=sharing]&lt;br /&gt;
&lt;br /&gt;
[[Chinese Document]]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5550</id>
		<title>Payment App</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App&amp;diff=5550"/>
		<updated>2026-07-03T04:02:14Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Quick Start]]&lt;br /&gt;
&lt;br /&gt;
[[Windows Debug Tools]]&lt;br /&gt;
&lt;br /&gt;
[[Core Protocol|Core Protocol(Important Payment Communication Protocols)]]&lt;br /&gt;
&lt;br /&gt;
[[Payment Apps|Payment Apps(Usually installed by WizarPOS)]]&lt;br /&gt;
&lt;br /&gt;
[[Local Integration (External Device)|Local Integration (The VM and the POS communicate directly through serial port or network, etc.)]]&lt;br /&gt;
&lt;br /&gt;
[[Internal Integration (POS App Development)|Internal Integration (Develop POS APP and call AIDL)]]&lt;br /&gt;
&lt;br /&gt;
[[Cloud Mode Integration]]&lt;br /&gt;
&lt;br /&gt;
[[Payment App Development]]&lt;br /&gt;
&lt;br /&gt;
[[Common Feature Development]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/WizarPOS_Integration_Certification_Letter.docx WizarPOS_Integration_Certification_Letter.docx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/[ENG]PAYwizardTestCasev1.0.xlsm [ENG]PAYwizard Test Case v1.0.xlsm]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1l2oXztWAOHN48vEPOS_BQU1Q1HZuoWNz4RwcDHSygfo/edit?usp=sharing]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1iFdDG9zqkNiNrM_-Me83XgAOViz-zGiH9xueBQlNWNY/edit?usp=sharing]&lt;br /&gt;
&lt;br /&gt;
[[Chinese Document]]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Internal_Integration_(POS_App_Development)&amp;diff=5549</id>
		<title>Internal Integration (POS App Development)</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Internal_Integration_(POS_App_Development)&amp;diff=5549"/>
		<updated>2026-06-30T07:04:22Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing normal applications on the terminal. The application can call the AIDL interface provided by the PAYWizard application to perform different types of transactions. In this mode, PAYWizard does not communicate with the Vendor Machine; the self-developed application is responsible for communicating with the Vendor Machine.&lt;br /&gt;
&lt;br /&gt;
===PAYWizard AIDL interface:===&lt;br /&gt;
[https://github.com/SmartPOSSamples/PayMentAIDLDemo/blob/main/app/src/main/aidl/com/wizarpos/payment/aidl/IPaymentPay.aidl Paywizard IPaymentPay.aidl]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PayMentAIDLDemo/blob/main/app/src/main/aidl/com/wizarpos/payment/aidl/IPaymentPayCallback.aidl Paywizard PaymentPayCallback.aidl]&lt;br /&gt;
===PayMentAIDLDemo===&lt;br /&gt;
[https://github.com/SmartPOSSamples/PayMentAIDLDemo PayMentAIDLDemo]&lt;br /&gt;
===Core Protocol===&lt;br /&gt;
Please send and receive data according to this protocal document:[[Core Protocol]]&lt;br /&gt;
===Flow===&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/ticket/flowchartofdevelopnormalapp.png Here is a flowchart]&lt;br /&gt;
===APK===&lt;br /&gt;
[https://ftp.wizarpos.com/payment/PayMentAidlDemo_release_V1.0.6_20260114.apk PayMentAidlDemo_release_V1.0.6_20260114]&lt;br /&gt;
&lt;br /&gt;
See also, [https://smartpossdk.gitbook.io/paywizard-open-api/semi-integration/internal-integration internal-integration]&lt;br /&gt;
&lt;br /&gt;
====Best practice for payment in D22(D3)/Q3(Q2)====&lt;br /&gt;
For developing applications on the D22.&lt;br /&gt;
* Install [https://ftp.wizarpos.com/payment/AccessoryAgentHostService-master-release-v1.0.30-r20251208115422-q1_platform.apk the new accessory agent] on D22(D3)/Q3(Q2)&lt;br /&gt;
* Install initconnectionmode on D22/Q3, configure master and slave. This step is usually pre-initialized at the factory and does not require further configuration by the customer.&lt;br /&gt;
* Install PAYwizard app on D22/Q3&lt;br /&gt;
* Set protocal of PAYwizard to DEFAULT on D22, and set the payment package name to com.wizarpos.opc&lt;br /&gt;
* Set protocal of PAYwizard to USB ACCESSORY on Q3, and set the payment package name to com.wizarpos.paywizard.demo&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5548</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5548"/>
		<updated>2026-06-17T09:31:50Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.9_2605251.apk Payment Emulator2.3.9]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_APP_V2.11.0-global-release.apk PayWizard_V2.11.0]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5547</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5547"/>
		<updated>2026-06-10T09:26:44Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[SDK杂记]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android-0603.zip Next指纹新的SDKnbbiometrics-scan-and-extract-sample-android-0603.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电，typeAUSB口可以连接UU线通讯， Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/RelayAndPulseDemo-init_modified260304.zip 源码relaypulsedemo][https://ftp.wizarpos.com/techsupport/software/relayDemo-1.0.exboard.apk relaypulsedemo apk] 调用exboard, 测试pulse（参数可设置），relay(参数不可设置)&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetoothtransactiondemo.zip 蓝牙发送交易的demo 源码，用来测试OPC的蓝牙协议] &lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetooth-transactiontest.apk 蓝牙发送交易的demo APK，用来测试OPC的蓝牙协议]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5546</id>
		<title>SDK杂记</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5546"/>
		<updated>2026-06-03T09:23:28Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress==&lt;br /&gt;
cloudpossdkV1.8.1.5开始支持&lt;br /&gt;
com.cloudpos.hsm.HSMDevice&lt;br /&gt;
&lt;br /&gt;
HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context)&lt;br /&gt;
&lt;br /&gt;
.getDevice(POSTerminal.DEVICE_NAME_HSM);&lt;br /&gt;
&lt;br /&gt;
hsm.open();&lt;br /&gt;
&lt;br /&gt;
// 单字段CSR（原接口）&lt;br /&gt;
X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
byte[] csr1 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject1);&lt;br /&gt;
&lt;br /&gt;
// 多字段CSR（#40841新支持CN/O/OU/C/ST/L）&lt;br /&gt;
X500Principal subject2 = new X500Principal(&lt;br /&gt;
&amp;quot;CN=pay.test.com,O=TestPayCorp,OU=Security Dept,C=CN,ST=Guangdong,L=Shenzhen&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
byte[] csr2 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject2);&lt;br /&gt;
&lt;br /&gt;
hsm.close();&lt;br /&gt;
&lt;br /&gt;
权限：CLOUDPOS_SAFE_MODULE&lt;br /&gt;
前置条件：HSM需存在公私钥对（例如：terminal别名）&lt;br /&gt;
==主动查询终端是否越界的接口（电子围栏相关）==&lt;br /&gt;
cloudpossdkV1.8.2.10开始支持, TmsAgent-v5.4.50.3以上开始支持。&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.TerminalSpec&lt;br /&gt;
&lt;br /&gt;
/** * Requests a geofence status check by sending a broadcast to the Terminal. * * &amp;lt;p&amp;gt; * When this method is invoked, Terminal performs a geofence validation immediately. * The result is delivered asynchronously via broadcast intents. This method does not * return the result directly. * &amp;lt;/p&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Broadcast Result Actions:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt; * Device is out of the geofence: * com.coudpos.ACTION_LOCATION_OUT_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Device has re-entered the geofence after being out of bounds: * com.coudpos.ACTION_LOCATION_IN_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Geofence feature is not enabled on the device: * com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED * &amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Implementation Details:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Uses Android broadcast mechanism with action-based filtering&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Caller must register a {@link android.content.BroadcastReceiver} to receive results&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Result is typically returned shortly after the request is triggered&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Ensure Terminal is registered before invoking this method&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
requestGeofenceBroadcast()&lt;br /&gt;
//Sample code:&lt;br /&gt;
TerminalSpec terminalSpec = POSTerminal.getInstance(context).getTerminalSpec();&lt;br /&gt;
&lt;br /&gt;
terminalSpec.requestGeofenceBroadcast();&lt;br /&gt;
&lt;br /&gt;
广播接收：&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_OUT_OF_BOUND — 终端出围栏&lt;br /&gt;
&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_IN_OF_BOUND — 终端入围栏&lt;br /&gt;
&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED — 围栏未启用&lt;br /&gt;
&lt;br /&gt;
&amp;lt;receiver&lt;br /&gt;
android:name=&amp;quot;com.cloudpos.api.receiver.LocationReceiver&amp;quot;&lt;br /&gt;
android:enabled=&amp;quot;true&amp;quot;&lt;br /&gt;
android:exported=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_OUT_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_IN_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;/receiver&amp;gt;&lt;br /&gt;
==对于在Q1K/Q2pro上，persist.wp.hw.customerdisplay值可能是size:240x320或者size:272x480，由驱动负责设置。SDK提供获取接口来解析这个属性：&lt;br /&gt;
android.util.Size CustomerDisplayDevice.getSize();==&lt;br /&gt;
cloudpossdkV1.8.2.10_Standard.aar以上开始支持。&lt;br /&gt;
&lt;br /&gt;
Q1K系列，需要bootloader0857+支持 #40099&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_CUSTOMER_DISPLAY&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.customerdisplay&lt;br /&gt;
&lt;br /&gt;
CustomerDisplayDevice device = (CustomerDisplayDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_CUSTOMER_DISPLAY);&lt;br /&gt;
&lt;br /&gt;
device.open();&lt;br /&gt;
&lt;br /&gt;
device.close();&lt;br /&gt;
&lt;br /&gt;
==logcat打包接口==&lt;br /&gt;
需要权限&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.MANAGE_EXTERNAL_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_MEDIA_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
接口实现&lt;br /&gt;
ILogDevice device = LogDeviceImpl.getInstance(context);&lt;br /&gt;
&lt;br /&gt;
示例代码：&lt;br /&gt;
&lt;br /&gt;
public void test() {&lt;br /&gt;
&lt;br /&gt;
if(th null || th.getState() Thread.State.TERMINATED){&lt;br /&gt;
&lt;br /&gt;
th = new Thread(new Runnable() {&lt;br /&gt;
&lt;br /&gt;
@Override&lt;br /&gt;
&lt;br /&gt;
public void run() {&lt;br /&gt;
&lt;br /&gt;
boolean result ;&lt;br /&gt;
&lt;br /&gt;
ILogDevice logDevice = LogDeviceImpl.getInstance(mContext);&lt;br /&gt;
&lt;br /&gt;
// result = logDevice.packageLog(1, &amp;quot;/sdcard/test/1_logs.zip&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Logger.debug(&amp;quot;run 1_logs result (%s)&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
result = logDevice.packageLogcats(3, &amp;quot;/sdcard/test/3_logcats.zip&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Logger.debug(&amp;quot;run 3_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
long endTime = System.currentTimeMillis();&lt;br /&gt;
&lt;br /&gt;
long startTime = endTime - 12 * 60 * 60 * 1000;&lt;br /&gt;
&lt;br /&gt;
result = logDevice.packageLogcats(startTime, endTime, &amp;quot;/sdcard/test/11_hours_logcats.zip&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Logger.debug(&amp;quot;run 11_hours_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
}&lt;br /&gt;
});&lt;br /&gt;
th.start();&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
==属性ro.wp.antenna.position，0表示内置，1表示外置==&lt;br /&gt;
提供JavaSDK的底层c的接口部分，每次被调用时，同时设置persist.wp.antenna.position确保信息持久化。&lt;br /&gt;
&lt;br /&gt;
cloudpossdkV1.8.1.1 验证ok&lt;br /&gt;
&lt;br /&gt;
需要固件支持，Q3MINI-V（pcbc）system1072+ #40676&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_MCUCTL&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AntennaDevice device = (AntennaDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_ANTENNA);&lt;br /&gt;
&lt;br /&gt;
device.open();&lt;br /&gt;
&lt;br /&gt;
device.getAntennaMode();&lt;br /&gt;
&lt;br /&gt;
device.setAntennaMode(AntennaDevice.AntennaMode.INTERNAL);&lt;br /&gt;
&lt;br /&gt;
device.close();&lt;br /&gt;
==On Android 10 and above, background services that want to start other services and activities must have the following permissions.==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.START_ACTIVITIES_FROM_BACKGROUND&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==电子钱包接口说明==&lt;br /&gt;
The writeValue method is only used when initialize to the card for the first time. For subsequent interactions with the card, the decreaseValue and increaseValue methods need to be called. According to the rules of different cards, before performing the addition or subtraction operation, the verifykeya or verifykeyb methods should be called.&lt;br /&gt;
&lt;br /&gt;
==selectPinblockFormat==&lt;br /&gt;
对于AES key, 默认是4， 而且只能是4， 也可以通过接口设置4，其他不支持.&lt;br /&gt;
&lt;br /&gt;
int selectPinblockFormat(int nPinblockFormat)&lt;br /&gt;
                  throws DeviceException&lt;br /&gt;
Selects the pinblock format to use. Default format is ISO0. Notes on Pinblock Format Support and Handling: - Supported Formats: The HAL layer supports ISO0, ISO2, ISO4, and SM4 formats. - Case 0: ISO2 is exclusively for IC card offline PIN functions. The pinblock is stored in the hardware security module (HSM) and is inaccessible to the HAL layer, as it is not encrypted. - Case 1: When a key with a specific algorithm is injected, if the algorithm doesn&#039;t match the pinblock format, the HSM returns an error. A match leads to successful processing. - Case 2: Injecting a key without specifying an algorithm allows the HSM to choose the pinblock format based on your selection. - Case 3: If no pinblock format is selected, the HSM chooses one based on the algorithm of the injected key.&lt;br /&gt;
Parameters:&lt;br /&gt;
nPinblockFormat - Format index (0~5, ISO0/ISO1/ISO2/ISO3/ISO4/SM4).&lt;br /&gt;
Returns:&lt;br /&gt;
Negative for error, non-negative for success.&lt;br /&gt;
Throws:&lt;br /&gt;
DeviceException - for standard reasons as documented in DeviceException.&lt;br /&gt;
==emv_trans_initialize()==&lt;br /&gt;
Before each transaction is initiated, the emv_trans_initialize() interface should be called to clear the previous data and set the parameters for the new transaction (such as TransAmount/OtherAmount/Trans Date/Time/Trace/Trans Type...)&lt;br /&gt;
==exitEMVKernel()==&lt;br /&gt;
It should be emphasized that exitEMVKernel() should be deprecated and should never be called at any time.&lt;br /&gt;
==pinpad写密文主密钥接口的checkvalue的计算方法==&lt;br /&gt;
用解出来的新主密钥对8个0x00做3des加密取前4个当校验值&lt;br /&gt;
==算pinblock的时候报-81152（No data available）==&lt;br /&gt;
原因调用JNI层calculate pinblock之前要先select key, 不调用select key, 就会报这个错误。&lt;br /&gt;
&lt;br /&gt;
JavaSDK的方法已经封装了selectkey, 所以没有问题&lt;br /&gt;
==注入主密钥的方式汇总==&lt;br /&gt;
两层密钥体系下：&lt;br /&gt;
&lt;br /&gt;
1. 手输主密钥，测试阶段用，参考https://sdkwiki.wizarpos.com/index.php?title=%E6%89%8B%E5%B7%A5%E6%B3%A8%E5%85%A5%E4%B8%BB%E5%AF%86%E9%92%A5%EF%BC%8C%E5%AE%A2%E6%88%B7%E8%B0%83%E8%AF%95%E6%97%B6%E7%94%A8&lt;br /&gt;
&lt;br /&gt;
2. 母POS注入，参考https://smartpossdk.gitbook.io/cloudpossdk/faq/key-injection/use-tmk-keyloader-pos&lt;br /&gt;
&lt;br /&gt;
3. RKMS，以及远程注入主密钥demo开发系统，参考https://smartpossdk.gitbook.io/cloudpossdk/faq/key-injection/understand-remote-key-injection&lt;br /&gt;
&lt;br /&gt;
4. SDK接口，不推荐，但是开发已经提供，有客户如果需要，也可以给。&lt;br /&gt;
&lt;br /&gt;
1）reset master key to 16 bytes 0x38, then call updateMaster key, updateMasterKey(int masterKeyID, byte[] oldMasterKey, byte[] newMasterKey)&lt;br /&gt;
&lt;br /&gt;
2) 只在最开始的时候reset master key, 调用updateMasterKey(int masterKeyID, byte[] oldMasterKey, byte[] newMasterKey)， 应用里存储新的&lt;br /&gt;
master key, 作为下次的更新时候传入的oldMaster key. 应用存储的key也可以使用HSM密钥加密存储，保证安全。&lt;br /&gt;
&lt;br /&gt;
三层密钥体系下：&lt;br /&gt;
&lt;br /&gt;
传输密钥需要使用母POS, RKMS, 或者远程注入主密钥的接口，或者SDK特殊给客户定制的更新传输密钥的接口注入。&lt;br /&gt;
&lt;br /&gt;
主密钥使用SDK提供的接口注入。updateMasterKeyWithCheck(int masterKeyID, byte[] cipherNewMasterKey, byte[] checkValue, int algoCheckValue)&lt;br /&gt;
==updateTransferKey仅支持visiontek,GSS==&lt;br /&gt;
GSS是新加的，需要配合使用如下的SDK和aar。&lt;br /&gt;
&lt;br /&gt;
cloudpossdkV1.7.7.18_gss.aar 验证ok&lt;br /&gt;
&lt;br /&gt;
需配合agentAssistant 2.15.191+使用&lt;br /&gt;
&lt;br /&gt;
logo=gss或者visiontek&lt;br /&gt;
&lt;br /&gt;
visiontek以前就支持。配合使用visiontek的aar包&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_PIN_UPDATE_TRANSFER_KEY&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.advance.ext.pinpad&lt;br /&gt;
&lt;br /&gt;
IPINPadDevice iPinPadDevice = POSTerminalAdvance.getInstance().getPINPadDevice();&lt;br /&gt;
&lt;br /&gt;
iPinPadDevice.open(context);&lt;br /&gt;
&lt;br /&gt;
iPinPadDevice.updateTransferKey(slot,arryCipherNewKey);&lt;br /&gt;
&lt;br /&gt;
iPinPadDevice.close();&lt;br /&gt;
==安卓6和7默认是NMEA串口，安卓12以后默认是ACM串口==&lt;br /&gt;
==Mifare card restoreValue和 transferValue的用法==&lt;br /&gt;
restorevalue, transfervalue一般用作备份数据。&lt;br /&gt;
&lt;br /&gt;
在同一个扇区操作。&lt;br /&gt;
&lt;br /&gt;
在扇区的不同block之间备份，首先block必须使用writevalue初始化成电子钱包。&lt;br /&gt;
&lt;br /&gt;
同一个扇区的不同block, verify一次就可以。&lt;br /&gt;
&lt;br /&gt;
调用逻辑：open--verfiy--restorevalue--transfervalue--close。&lt;br /&gt;
&lt;br /&gt;
restorevalue和transfervalue之间做verify，transfervalue失败。&lt;br /&gt;
==ExtBoardDevice调用方法==&lt;br /&gt;
ExtBoardDevice extBoardDevice = (ExtBoardDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_EXT_BOARD);&lt;br /&gt;
&lt;br /&gt;
extBoardDevice.open();&lt;br /&gt;
&lt;br /&gt;
extBoardDevice.close();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_SERIAL&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_VIRTUAL_SERIAL_PORT&amp;quot; /&amp;gt;&lt;br /&gt;
==MDB factor decimal问题==&lt;br /&gt;
一般factor设置1， decimal设置2. decimal设置成2的含义：因为mdb不能传输小数位数，这个设置可以让mdb传输带两个小数位数的数值，比如售货机设置0.01， 那么在协议命令里，可以设置值为1， 这样因为decimal为2， 所以实际的值是0.01. 有些售货机默认都是2， 不接受我们协议去更改。所以我们这边比如测试OPC的时候就设置为2. 售货机改不改都没关系。如果售货机会有其他值，那么再根据实际情况调整。&lt;br /&gt;
==普通应用截屏接口==&lt;br /&gt;
cloudpossdkV1.7.6.7以上&lt;br /&gt;
&lt;br /&gt;
WizarViewAgentAssistant-v2.15.183+ &lt;br /&gt;
&lt;br /&gt;
com.cloudpos.advance.ext.system&lt;br /&gt;
&lt;br /&gt;
ISystemDevice iSystemDevice = POSTerminalAdvance.getInstance().getSystemDevice();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.open(context);&lt;br /&gt;
&lt;br /&gt;
iSystemDevice .screenshot();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice .getScreenshotInPNG();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.close();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.READ_FRAME_BUFFER&amp;quot; /&amp;gt;&lt;br /&gt;
==wifi hotspot的设置API==&lt;br /&gt;
cloudpossdkV1.7.6.7以上&lt;br /&gt;
&lt;br /&gt;
WizarViewAgentAssistant-v2.15.179+&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.advance.ext.system.network&lt;br /&gt;
&lt;br /&gt;
IWifiDevice iWifiDevice = POSTerminalAdvance.getInstance().getSystemDevice().getNetworkManager().getWifiManager();&lt;br /&gt;
&lt;br /&gt;
iWifiDevice.open(context);&lt;br /&gt;
&lt;br /&gt;
iWifiDevice.startWifiAp(&amp;quot;wifitest&amp;quot;,&amp;quot;abcdefgh&amp;quot;,&amp;quot;WPA2_PSK&amp;quot;,false);&lt;br /&gt;
&lt;br /&gt;
iWifiDevice.stopWifiAp();&lt;br /&gt;
&lt;br /&gt;
iWifiDevice.close();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CHANGE_WIFI_STATE&amp;quot; /&amp;gt;&lt;br /&gt;
==检查终端是否root的接口==&lt;br /&gt;
cloudpossdkV1.7.6.7及以上&lt;br /&gt;
&lt;br /&gt;
WizarViewAgentAssistant-v2.15.164+ &lt;br /&gt;
&lt;br /&gt;
com.cloudpos.advance.ext.system&lt;br /&gt;
&lt;br /&gt;
ISystemDevice iSystemDevice = POSTerminalAdvance.getInstance().getSystemDevice();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.open(context);&lt;br /&gt;
&lt;br /&gt;
iSystemDevice .isTerminalRooted();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.close();&lt;br /&gt;
==添加wifi证书，IUserCredentials使用==&lt;br /&gt;
cloudpossdkV1.7.6.10 以上开始支持&lt;br /&gt;
&lt;br /&gt;
WizarViewAgentAssistant-2.15.183以上开始&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.advance.ext.system.security&lt;br /&gt;
&lt;br /&gt;
IUserCredentials iUserCredentials = POSTerminalAdvance.getInstance().getSystemDevice().getUserCredentialsManager();&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.open(context);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.installCaCert(CaCertBuffer);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.existCaCert(CaCertAlias);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.getCaCert(CaCertAlias);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.deleteCaCert(CaCertAlias);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.installKeyPair(KeyPairAlias,type,privateKeyBuffer,certBuffer);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.existKeyPair(KeyPairAlias);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.removeKeyPair(KeyPairAlias);&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.clearCredentials();&lt;br /&gt;
&lt;br /&gt;
iUserCredentials.close();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_USERCERTIFICATE&amp;quot; /&amp;gt;&lt;br /&gt;
==功能键唤醒终端(waking up terminal by function key )==&lt;br /&gt;
cloudpossdkV1.7.7.3以上&lt;br /&gt;
&lt;br /&gt;
WizarViewAgentAssistant-v2.15.186+ &lt;br /&gt;
&lt;br /&gt;
com.cloudpos.advance.ext.system&lt;br /&gt;
&lt;br /&gt;
ISystemDevice iSystemDevice = POSTerminalAdvance.getInstance().getSystemDevice();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.open(context);&lt;br /&gt;
&lt;br /&gt;
iSystemDevice . setButtonWakeup (true);&lt;br /&gt;
&lt;br /&gt;
iSystemDevice . isButtonWakeup ();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.close();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_POS_SETTINGS&amp;quot; /&amp;gt;&lt;br /&gt;
==普通应用kill支付应用接口==&lt;br /&gt;
/** * Force-stops a payment application.&lt;br /&gt;
 * * &amp;lt;p&amp;gt;This API terminates the target process immediately and clears its running state. * Only built-in/system payment applications are allowed to be terminated by this method. * Calling this on non-built-in apps will return {@code false} without performing any action.&amp;lt;/p&amp;gt; * *&lt;br /&gt;
 @param pkgName the package name of the payment application * @return {@code true} if the app process was successfully terminated; * {@code false} otherwise * * @requiresPermission android.permission.CLOUDPOS_APP_MANAGER&lt;br /&gt;
*/&lt;br /&gt;
boolean stopApp(String pkgName);&lt;br /&gt;
&lt;br /&gt;
cloudpossdkV1.7.7.18_Standard.aar及以上&lt;br /&gt;
&lt;br /&gt;
agentAssistant 2.15.190及以上&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_MANAGE_APP&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ISystemDevice iSystemDevice = POSTerminalAdvance.getInstance().getSystemDevice();&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.open(context);&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.stopApp(&amp;quot;com.example.paytest&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
iSystemDevice.close();&lt;br /&gt;
&lt;br /&gt;
==获取打印以及卡片最后使用时间的应用接口==&lt;br /&gt;
/** * Gets the last time the specified device was accessed. &lt;br /&gt;
* * @param deviceName the unique name of the device *&lt;br /&gt;
 @return the last used time in milliseconds since epoch, * or -1 if the device has never been used * see : System.currentTimeMillis() * &lt;br /&gt;
@throws DeviceException for standard reasons as documented in {@link DeviceException NO_IMPLEMENT}.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
abstract public long getDeviceLastAccessTime(String deviceName) throws DeviceException;&lt;br /&gt;
&lt;br /&gt;
cloudpossdkV1.7.7.18_Standard.aar 验证ok&lt;br /&gt;
&lt;br /&gt;
需配合agent 5.4.43+使用&lt;br /&gt;
&lt;br /&gt;
system也有更新，解决RF时间不准确问题（例如Q3MU system1042+）&lt;br /&gt;
&lt;br /&gt;
long result = POSTerminal.getInstance(context).getDeviceLastAccessTime(deviceName);&lt;br /&gt;
==Admin/user登录/退出接口==&lt;br /&gt;
cloudpossdkV1.7.7.18_Standard.aar及以上&lt;br /&gt;
&lt;br /&gt;
需配合 possetting 1.32.208及以上&lt;br /&gt;
&lt;br /&gt;
添加权限&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;uses-permission android:name=&amp;quot;android.permission.USER_PWD&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;uses-permission android:name=&amp;quot;android.permission.ADMIN_PWD&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.advance.ext.system.login&lt;br /&gt;
&lt;br /&gt;
ILoginDevice iLoginDevice = POSTerminalAdvance.getInstance().getSystemDevice().getLoginManager();&lt;br /&gt;
&lt;br /&gt;
iLoginDevice.open(context);&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5545</id>
		<title>SDK杂记</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5545"/>
		<updated>2026-06-03T07:10:48Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress==&lt;br /&gt;
cloudpossdkV1.8.1.5开始支持&lt;br /&gt;
com.cloudpos.hsm.HSMDevice&lt;br /&gt;
&lt;br /&gt;
HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context)&lt;br /&gt;
&lt;br /&gt;
.getDevice(POSTerminal.DEVICE_NAME_HSM);&lt;br /&gt;
&lt;br /&gt;
hsm.open();&lt;br /&gt;
&lt;br /&gt;
// 单字段CSR（原接口）&lt;br /&gt;
X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
byte[] csr1 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject1);&lt;br /&gt;
&lt;br /&gt;
// 多字段CSR（#40841新支持CN/O/OU/C/ST/L）&lt;br /&gt;
X500Principal subject2 = new X500Principal(&lt;br /&gt;
&amp;quot;CN=pay.test.com,O=TestPayCorp,OU=Security Dept,C=CN,ST=Guangdong,L=Shenzhen&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
byte[] csr2 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject2);&lt;br /&gt;
&lt;br /&gt;
hsm.close();&lt;br /&gt;
&lt;br /&gt;
权限：CLOUDPOS_SAFE_MODULE&lt;br /&gt;
前置条件：HSM需存在公私钥对（例如：terminal别名）&lt;br /&gt;
==主动查询终端是否越界的接口（电子围栏相关）==&lt;br /&gt;
cloudpossdkV1.8.2.10开始支持, TmsAgent-v5.4.50.3以上开始支持。&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.TerminalSpec&lt;br /&gt;
&lt;br /&gt;
/** * Requests a geofence status check by sending a broadcast to the Terminal. * * &amp;lt;p&amp;gt; * When this method is invoked, Terminal performs a geofence validation immediately. * The result is delivered asynchronously via broadcast intents. This method does not * return the result directly. * &amp;lt;/p&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Broadcast Result Actions:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt; * Device is out of the geofence: * com.coudpos.ACTION_LOCATION_OUT_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Device has re-entered the geofence after being out of bounds: * com.coudpos.ACTION_LOCATION_IN_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Geofence feature is not enabled on the device: * com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED * &amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Implementation Details:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Uses Android broadcast mechanism with action-based filtering&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Caller must register a {@link android.content.BroadcastReceiver} to receive results&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Result is typically returned shortly after the request is triggered&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Ensure Terminal is registered before invoking this method&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
requestGeofenceBroadcast()&lt;br /&gt;
//Sample code:&lt;br /&gt;
TerminalSpec terminalSpec = POSTerminal.getInstance(context).getTerminalSpec();&lt;br /&gt;
&lt;br /&gt;
terminalSpec.requestGeofenceBroadcast();&lt;br /&gt;
&lt;br /&gt;
广播接收：&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_OUT_OF_BOUND — 终端出围栏&lt;br /&gt;
&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_IN_OF_BOUND — 终端入围栏&lt;br /&gt;
&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED — 围栏未启用&lt;br /&gt;
&lt;br /&gt;
&amp;lt;receiver&lt;br /&gt;
android:name=&amp;quot;com.cloudpos.api.receiver.LocationReceiver&amp;quot;&lt;br /&gt;
android:enabled=&amp;quot;true&amp;quot;&lt;br /&gt;
android:exported=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_OUT_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_IN_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;/receiver&amp;gt;&lt;br /&gt;
==对于在Q1K/Q2pro上，persist.wp.hw.customerdisplay值可能是size:240x320或者size:272x480，由驱动负责设置。SDK提供获取接口来解析这个属性：&lt;br /&gt;
android.util.Size CustomerDisplayDevice.getSize();==&lt;br /&gt;
cloudpossdkV1.8.2.10_Standard.aar以上开始支持。&lt;br /&gt;
&lt;br /&gt;
Q1K系列，需要bootloader0857+支持 #40099&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_CUSTOMER_DISPLAY&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.customerdisplay&lt;br /&gt;
&lt;br /&gt;
CustomerDisplayDevice device = (CustomerDisplayDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_CUSTOMER_DISPLAY);&lt;br /&gt;
&lt;br /&gt;
device.open();&lt;br /&gt;
&lt;br /&gt;
device.close();&lt;br /&gt;
&lt;br /&gt;
==logcat打包接口==&lt;br /&gt;
需要权限&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.MANAGE_EXTERNAL_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_MEDIA_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
接口实现&lt;br /&gt;
ILogDevice device = LogDeviceImpl.getInstance(context);&lt;br /&gt;
&lt;br /&gt;
示例代码：&lt;br /&gt;
&lt;br /&gt;
public void test() {&lt;br /&gt;
&lt;br /&gt;
if(th null || th.getState() Thread.State.TERMINATED){&lt;br /&gt;
&lt;br /&gt;
th = new Thread(new Runnable() {&lt;br /&gt;
&lt;br /&gt;
@Override&lt;br /&gt;
&lt;br /&gt;
public void run() {&lt;br /&gt;
&lt;br /&gt;
boolean result ;&lt;br /&gt;
&lt;br /&gt;
ILogDevice logDevice = LogDeviceImpl.getInstance(mContext);&lt;br /&gt;
&lt;br /&gt;
// result = logDevice.packageLog(1, &amp;quot;/sdcard/test/1_logs.zip&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Logger.debug(&amp;quot;run 1_logs result (%s)&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
result = logDevice.packageLogcats(3, &amp;quot;/sdcard/test/3_logcats.zip&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Logger.debug(&amp;quot;run 3_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
long endTime = System.currentTimeMillis();&lt;br /&gt;
&lt;br /&gt;
long startTime = endTime - 12 * 60 * 60 * 1000;&lt;br /&gt;
&lt;br /&gt;
result = logDevice.packageLogcats(startTime, endTime, &amp;quot;/sdcard/test/11_hours_logcats.zip&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Logger.debug(&amp;quot;run 11_hours_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
}&lt;br /&gt;
});&lt;br /&gt;
th.start();&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
==属性ro.wp.antenna.position，0表示内置，1表示外置==&lt;br /&gt;
提供JavaSDK的底层c的接口部分，每次被调用时，同时设置persist.wp.antenna.position确保信息持久化。&lt;br /&gt;
&lt;br /&gt;
cloudpossdkV1.8.1.1 验证ok&lt;br /&gt;
&lt;br /&gt;
需要固件支持，Q3MINI-V（pcbc）system1072+ #40676&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_MCUCTL&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AntennaDevice device = (AntennaDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_ANTENNA);&lt;br /&gt;
&lt;br /&gt;
device.open();&lt;br /&gt;
&lt;br /&gt;
device.getAntennaMode();&lt;br /&gt;
&lt;br /&gt;
device.setAntennaMode(AntennaDevice.AntennaMode.INTERNAL);&lt;br /&gt;
&lt;br /&gt;
device.close();&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5544</id>
		<title>SDK杂记</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5544"/>
		<updated>2026-06-03T07:05:41Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress==&lt;br /&gt;
cloudpossdkV1.8.1.5开始支持&lt;br /&gt;
com.cloudpos.hsm.HSMDevice&lt;br /&gt;
&lt;br /&gt;
HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context)&lt;br /&gt;
.getDevice(POSTerminal.DEVICE_NAME_HSM);&lt;br /&gt;
hsm.open();&lt;br /&gt;
&lt;br /&gt;
// 单字段CSR（原接口）&lt;br /&gt;
X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;);&lt;br /&gt;
byte[] csr1 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject1);&lt;br /&gt;
&lt;br /&gt;
// 多字段CSR（#40841新支持CN/O/OU/C/ST/L）&lt;br /&gt;
X500Principal subject2 = new X500Principal(&lt;br /&gt;
&amp;quot;CN=pay.test.com,O=TestPayCorp,OU=Security Dept,C=CN,ST=Guangdong,L=Shenzhen&amp;quot;);&lt;br /&gt;
byte[] csr2 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject2);&lt;br /&gt;
&lt;br /&gt;
hsm.close();&lt;br /&gt;
&lt;br /&gt;
权限：CLOUDPOS_SAFE_MODULE&lt;br /&gt;
前置条件：HSM需存在公私钥对（例如：terminal别名）&lt;br /&gt;
==主动查询终端是否越界的接口（电子围栏相关）==&lt;br /&gt;
cloudpossdkV1.8.2.10开始支持, TmsAgent-v5.4.50.3以上开始支持。&lt;br /&gt;
com.cloudpos.TerminalSpec&lt;br /&gt;
/** * Requests a geofence status check by sending a broadcast to the Terminal. * * &amp;lt;p&amp;gt; * When this method is invoked, Terminal performs a geofence validation immediately. * The result is delivered asynchronously via broadcast intents. This method does not * return the result directly. * &amp;lt;/p&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Broadcast Result Actions:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt; * Device is out of the geofence: * com.coudpos.ACTION_LOCATION_OUT_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Device has re-entered the geofence after being out of bounds: * com.coudpos.ACTION_LOCATION_IN_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Geofence feature is not enabled on the device: * com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED * &amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Implementation Details:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Uses Android broadcast mechanism with action-based filtering&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Caller must register a {@link android.content.BroadcastReceiver} to receive results&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Result is typically returned shortly after the request is triggered&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Ensure Terminal is registered before invoking this method&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
requestGeofenceBroadcast()&lt;br /&gt;
//Sample code:&lt;br /&gt;
TerminalSpec terminalSpec = POSTerminal.getInstance(context).getTerminalSpec();&lt;br /&gt;
terminalSpec.requestGeofenceBroadcast();&lt;br /&gt;
&lt;br /&gt;
广播接收：&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_OUT_OF_BOUND — 终端出围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_IN_OF_BOUND — 终端入围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED — 围栏未启用&lt;br /&gt;
&amp;lt;receiver&lt;br /&gt;
android:name=&amp;quot;com.cloudpos.api.receiver.LocationReceiver&amp;quot;&lt;br /&gt;
android:enabled=&amp;quot;true&amp;quot;&lt;br /&gt;
android:exported=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_OUT_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_IN_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;/receiver&amp;gt;&lt;br /&gt;
==对于在Q1K/Q2pro上，persist.wp.hw.customerdisplay值可能是size:240x320或者size:272x480，由驱动负责设置。SDK提供获取接口来解析这个属性：&lt;br /&gt;
android.util.Size CustomerDisplayDevice.getSize();&lt;br /&gt;
cloudpossdkV1.8.2.10_Standard.aar以上开始支持。&lt;br /&gt;
Q1K系列，需要bootloader0857+支持 #40099&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_CUSTOMER_DISPLAY&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.customerdisplay&lt;br /&gt;
CustomerDisplayDevice device = (CustomerDisplayDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_CUSTOMER_DISPLAY);&lt;br /&gt;
device.open();&lt;br /&gt;
&lt;br /&gt;
device.close();&lt;br /&gt;
&lt;br /&gt;
==logcat打包接口==&lt;br /&gt;
需要权限&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.MANAGE_EXTERNAL_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_MEDIA_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
接口实现&lt;br /&gt;
ILogDevice device = LogDeviceImpl.getInstance(context);&lt;br /&gt;
示例代码：&lt;br /&gt;
public void test() {&lt;br /&gt;
if(th null || th.getState() Thread.State.TERMINATED){&lt;br /&gt;
th = new Thread(new Runnable() {&lt;br /&gt;
@Override&lt;br /&gt;
public void run() {&lt;br /&gt;
boolean result ;&lt;br /&gt;
ILogDevice logDevice = LogDeviceImpl.getInstance(mContext);&lt;br /&gt;
// result = logDevice.packageLog(1, &amp;quot;/sdcard/test/1_logs.zip&amp;quot;);&lt;br /&gt;
// Logger.debug(&amp;quot;run 1_logs result (%s)&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
result = logDevice.packageLogcats(3, &amp;quot;/sdcard/test/3_logcats.zip&amp;quot;);&lt;br /&gt;
                    Logger.debug(&amp;quot;run 3_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
long endTime = System.currentTimeMillis();&lt;br /&gt;
                    long startTime = endTime - 12 * 60 * 60 * 1000;&lt;br /&gt;
                    result = logDevice.packageLogcats(startTime, endTime, &amp;quot;/sdcard/test/11_hours_logcats.zip&amp;quot;);&lt;br /&gt;
                    Logger.debug(&amp;quot;run 11_hours_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            th.start();&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
==属性ro.wp.antenna.position，0表示内置，1表示外置==&lt;br /&gt;
提供JavaSDK的底层c的接口部分，每次被调用时，同时设置persist.wp.antenna.position确保信息持久化。&lt;br /&gt;
cloudpossdkV1.8.1.1 验证ok&lt;br /&gt;
需要固件支持，Q3MINI-V（pcbc）system1072+ #40676&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_MCUCTL&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AntennaDevice device = (AntennaDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_ANTENNA);&lt;br /&gt;
device.open();&lt;br /&gt;
device.getAntennaMode();&lt;br /&gt;
device.setAntennaMode(AntennaDevice.AntennaMode.INTERNAL);&lt;br /&gt;
device.close();&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5543</id>
		<title>SDK杂记</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5543"/>
		<updated>2026-06-03T06:47:28Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress==&lt;br /&gt;
cloudpossdkV1.8.1.5开始支持&lt;br /&gt;
com.cloudpos.hsm.HSMDevice&lt;br /&gt;
&lt;br /&gt;
HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context)&lt;br /&gt;
.getDevice(POSTerminal.DEVICE_NAME_HSM);&lt;br /&gt;
hsm.open();&lt;br /&gt;
&lt;br /&gt;
// 单字段CSR（原接口）&lt;br /&gt;
X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;);&lt;br /&gt;
byte[] csr1 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject1);&lt;br /&gt;
&lt;br /&gt;
// 多字段CSR（#40841新支持CN/O/OU/C/ST/L）&lt;br /&gt;
X500Principal subject2 = new X500Principal(&lt;br /&gt;
&amp;quot;CN=pay.test.com,O=TestPayCorp,OU=Security Dept,C=CN,ST=Guangdong,L=Shenzhen&amp;quot;);&lt;br /&gt;
byte[] csr2 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject2);&lt;br /&gt;
&lt;br /&gt;
hsm.close();&lt;br /&gt;
&lt;br /&gt;
权限：CLOUDPOS_SAFE_MODULE&lt;br /&gt;
前置条件：HSM需存在公私钥对（例如：terminal别名）&lt;br /&gt;
==主动查询终端是否越界的接口（电子围栏相关）==&lt;br /&gt;
cloudpossdkV1.8.2.10开始支持, TmsAgent-v5.4.50.3以上开始支持。&lt;br /&gt;
com.cloudpos.TerminalSpec&lt;br /&gt;
/** * Requests a geofence status check by sending a broadcast to the Terminal. * * &amp;lt;p&amp;gt; * When this method is invoked, Terminal performs a geofence validation immediately. * The result is delivered asynchronously via broadcast intents. This method does not * return the result directly. * &amp;lt;/p&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Broadcast Result Actions:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt; * Device is out of the geofence: * com.coudpos.ACTION_LOCATION_OUT_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Device has re-entered the geofence after being out of bounds: * com.coudpos.ACTION_LOCATION_IN_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Geofence feature is not enabled on the device: * com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED * &amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Implementation Details:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Uses Android broadcast mechanism with action-based filtering&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Caller must register a {@link android.content.BroadcastReceiver} to receive results&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Result is typically returned shortly after the request is triggered&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Ensure Terminal is registered before invoking this method&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
requestGeofenceBroadcast()&lt;br /&gt;
//Sample code:&lt;br /&gt;
TerminalSpec terminalSpec = POSTerminal.getInstance(context).getTerminalSpec();&lt;br /&gt;
terminalSpec.requestGeofenceBroadcast();&lt;br /&gt;
&lt;br /&gt;
广播接收：&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_OUT_OF_BOUND — 终端出围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_IN_OF_BOUND — 终端入围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED — 围栏未启用&lt;br /&gt;
&amp;lt;receiver&lt;br /&gt;
android:name=&amp;quot;com.cloudpos.api.receiver.LocationReceiver&amp;quot;&lt;br /&gt;
android:enabled=&amp;quot;true&amp;quot;&lt;br /&gt;
android:exported=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_OUT_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_IN_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;/receiver&amp;gt;&lt;br /&gt;
==对于在Q1K/Q2pro上，persist.wp.hw.customerdisplay值可能是size:240x320或者size:272x480，由驱动负责设置。SDK提供获取接口来解析这个属性：&lt;br /&gt;
android.util.Size CustomerDisplayDevice.getSize();&lt;br /&gt;
cloudpossdkV1.8.2.10_Standard.aar以上开始支持。&lt;br /&gt;
Q1K系列，需要bootloader0857+支持 #40099&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_CUSTOMER_DISPLAY&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.customerdisplay&lt;br /&gt;
CustomerDisplayDevice device = (CustomerDisplayDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_CUSTOMER_DISPLAY);&lt;br /&gt;
device.open();&lt;br /&gt;
&lt;br /&gt;
device.close();&lt;br /&gt;
&lt;br /&gt;
==logcat打包接口==&lt;br /&gt;
需要权限&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.MANAGE_EXTERNAL_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.WRITE_MEDIA_STORAGE&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
接口实现&lt;br /&gt;
ILogDevice device = LogDeviceImpl.getInstance(context);&lt;br /&gt;
示例代码：&lt;br /&gt;
public void test() {&lt;br /&gt;
if(th null || th.getState() Thread.State.TERMINATED){&lt;br /&gt;
th = new Thread(new Runnable() {&lt;br /&gt;
@Override&lt;br /&gt;
public void run() {&lt;br /&gt;
boolean result ;&lt;br /&gt;
ILogDevice logDevice = LogDeviceImpl.getInstance(mContext);&lt;br /&gt;
// result = logDevice.packageLog(1, &amp;quot;/sdcard/test/1_logs.zip&amp;quot;);&lt;br /&gt;
// Logger.debug(&amp;quot;run 1_logs result (%s)&amp;quot;, result);&lt;br /&gt;
&lt;br /&gt;
result = logDevice.packageLogcats(3, &amp;quot;/sdcard/test/3_logcats.zip&amp;quot;);&lt;br /&gt;
                    Logger.debug(&amp;quot;run 3_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
long endTime = System.currentTimeMillis();&lt;br /&gt;
                    long startTime = endTime - 12 * 60 * 60 * 1000;&lt;br /&gt;
                    result = logDevice.packageLogcats(startTime, endTime, &amp;quot;/sdcard/test/11_hours_logcats.zip&amp;quot;);&lt;br /&gt;
                    Logger.debug(&amp;quot;run 11_hours_logcats result (%s)&amp;quot;, result);&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            th.start();&lt;br /&gt;
        }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5542</id>
		<title>SDK杂记</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5542"/>
		<updated>2026-06-03T06:39:20Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress==&lt;br /&gt;
cloudpossdkV1.8.1.5开始支持&lt;br /&gt;
com.cloudpos.hsm.HSMDevice&lt;br /&gt;
&lt;br /&gt;
HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context)&lt;br /&gt;
.getDevice(POSTerminal.DEVICE_NAME_HSM);&lt;br /&gt;
hsm.open();&lt;br /&gt;
&lt;br /&gt;
// 单字段CSR（原接口）&lt;br /&gt;
X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;);&lt;br /&gt;
byte[] csr1 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject1);&lt;br /&gt;
&lt;br /&gt;
// 多字段CSR（#40841新支持CN/O/OU/C/ST/L）&lt;br /&gt;
X500Principal subject2 = new X500Principal(&lt;br /&gt;
&amp;quot;CN=pay.test.com,O=TestPayCorp,OU=Security Dept,C=CN,ST=Guangdong,L=Shenzhen&amp;quot;);&lt;br /&gt;
byte[] csr2 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject2);&lt;br /&gt;
&lt;br /&gt;
hsm.close();&lt;br /&gt;
&lt;br /&gt;
权限：CLOUDPOS_SAFE_MODULE&lt;br /&gt;
前置条件：HSM需存在公私钥对（例如：terminal别名）&lt;br /&gt;
==主动查询终端是否越界的接口（电子围栏相关）==&lt;br /&gt;
cloudpossdkV1.8.2.10开始支持, TmsAgent-v5.4.50.3以上开始支持。&lt;br /&gt;
com.cloudpos.TerminalSpec&lt;br /&gt;
/** * Requests a geofence status check by sending a broadcast to the Terminal. * * &amp;lt;p&amp;gt; * When this method is invoked, Terminal performs a geofence validation immediately. * The result is delivered asynchronously via broadcast intents. This method does not * return the result directly. * &amp;lt;/p&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Broadcast Result Actions:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt; * Device is out of the geofence: * com.coudpos.ACTION_LOCATION_OUT_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Device has re-entered the geofence after being out of bounds: * com.coudpos.ACTION_LOCATION_IN_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Geofence feature is not enabled on the device: * com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED * &amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Implementation Details:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Uses Android broadcast mechanism with action-based filtering&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Caller must register a {@link android.content.BroadcastReceiver} to receive results&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Result is typically returned shortly after the request is triggered&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Ensure Terminal is registered before invoking this method&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
requestGeofenceBroadcast()&lt;br /&gt;
//Sample code:&lt;br /&gt;
TerminalSpec terminalSpec = POSTerminal.getInstance(context).getTerminalSpec();&lt;br /&gt;
terminalSpec.requestGeofenceBroadcast();&lt;br /&gt;
&lt;br /&gt;
广播接收：&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_OUT_OF_BOUND — 终端出围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_IN_OF_BOUND — 终端入围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED — 围栏未启用&lt;br /&gt;
&amp;lt;receiver&lt;br /&gt;
android:name=&amp;quot;com.cloudpos.api.receiver.LocationReceiver&amp;quot;&lt;br /&gt;
android:enabled=&amp;quot;true&amp;quot;&lt;br /&gt;
android:exported=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_OUT_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_IN_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;/receiver&amp;gt;&lt;br /&gt;
==对于在Q1K/Q2pro上，persist.wp.hw.customerdisplay值可能是size:240x320或者size:272x480，由驱动负责设置。SDK提供获取接口来解析这个属性：&lt;br /&gt;
android.util.Size CustomerDisplayDevice.getSize();&lt;br /&gt;
cloudpossdkV1.8.2.10_Standard.aar以上开始支持。&lt;br /&gt;
Q1K系列，需要bootloader0857+支持 #40099&lt;br /&gt;
&lt;br /&gt;
&amp;lt;uses-permission android:name=&amp;quot;android.permission.CLOUDPOS_CUSTOMER_DISPLAY&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com.cloudpos.customerdisplay&lt;br /&gt;
CustomerDisplayDevice device = (CustomerDisplayDevice) POSTerminal.getInstance(context).getDevice(POSTerminal.DEVICE_NAME_CUSTOMER_DISPLAY);&lt;br /&gt;
device.open();&lt;br /&gt;
&lt;br /&gt;
device.close();&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5541</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5541"/>
		<updated>2026-06-03T06:01:20Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[SDK杂记]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android-0603.zip Next指纹新的SDKnbbiometrics-scan-and-extract-sample-android-0603.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电，typeAUSB口可以连接UU线通讯， Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetoothtransactiondemo.zip 蓝牙发送交易的demo 源码，用来测试OPC的蓝牙协议] &lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetooth-transactiontest.apk 蓝牙发送交易的demo APK，用来测试OPC的蓝牙协议]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5540</id>
		<title>SDK杂记</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5540"/>
		<updated>2026-06-03T05:32:47Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress==&lt;br /&gt;
cloudpossdkV1.8.1.5开始支持&lt;br /&gt;
com.cloudpos.hsm.HSMDevice&lt;br /&gt;
&lt;br /&gt;
HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context)&lt;br /&gt;
.getDevice(POSTerminal.DEVICE_NAME_HSM);&lt;br /&gt;
hsm.open();&lt;br /&gt;
&lt;br /&gt;
// 单字段CSR（原接口）&lt;br /&gt;
X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;);&lt;br /&gt;
byte[] csr1 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject1);&lt;br /&gt;
&lt;br /&gt;
// 多字段CSR（#40841新支持CN/O/OU/C/ST/L）&lt;br /&gt;
X500Principal subject2 = new X500Principal(&lt;br /&gt;
&amp;quot;CN=pay.test.com,O=TestPayCorp,OU=Security Dept,C=CN,ST=Guangdong,L=Shenzhen&amp;quot;);&lt;br /&gt;
byte[] csr2 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject2);&lt;br /&gt;
&lt;br /&gt;
hsm.close();&lt;br /&gt;
&lt;br /&gt;
权限：CLOUDPOS_SAFE_MODULE&lt;br /&gt;
前置条件：HSM需存在公私钥对（例如：terminal别名）&lt;br /&gt;
==主动查询终端是否越界的接口（电子围栏相关）==&lt;br /&gt;
cloudpossdkV1.8.2.10开始支持, TmsAgent-v5.4.50.3以上开始支持。&lt;br /&gt;
com.cloudpos.TerminalSpec&lt;br /&gt;
/** * Requests a geofence status check by sending a broadcast to the Terminal. * * &amp;lt;p&amp;gt; * When this method is invoked, Terminal performs a geofence validation immediately. * The result is delivered asynchronously via broadcast intents. This method does not * return the result directly. * &amp;lt;/p&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Broadcast Result Actions:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt; * Device is out of the geofence: * com.coudpos.ACTION_LOCATION_OUT_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Device has re-entered the geofence after being out of bounds: * com.coudpos.ACTION_LOCATION_IN_OF_BOUND * &amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt; * Geofence feature is not enabled on the device: * com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED * &amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Implementation Details:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Uses Android broadcast mechanism with action-based filtering&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Caller must register a {@link android.content.BroadcastReceiver} to receive results&amp;lt;/li&amp;gt; * &amp;lt;li&amp;gt;Result is typically returned shortly after the request is triggered&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt; * * &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt; * &amp;lt;ul&amp;gt; * &amp;lt;li&amp;gt;Ensure Terminal is registered before invoking this method&amp;lt;/li&amp;gt; * &amp;lt;/ul&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
requestGeofenceBroadcast()&lt;br /&gt;
//Sample code:&lt;br /&gt;
TerminalSpec terminalSpec = POSTerminal.getInstance(context).getTerminalSpec();&lt;br /&gt;
terminalSpec.requestGeofenceBroadcast();&lt;br /&gt;
&lt;br /&gt;
广播接收：&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_OUT_OF_BOUND — 终端出围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_IN_OF_BOUND — 终端入围栏&lt;br /&gt;
- com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED — 围栏未启用&lt;br /&gt;
&amp;lt;receiver&lt;br /&gt;
android:name=&amp;quot;com.cloudpos.api.receiver.LocationReceiver&amp;quot;&lt;br /&gt;
android:enabled=&amp;quot;true&amp;quot;&lt;br /&gt;
android:exported=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_OUT_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_IN_OF_BOUND&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;action android:name=&amp;quot;com.coudpos.ACTION_LOCATION_GEOFENCE_DISABLED&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;
&amp;lt;/receiver&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5539</id>
		<title>SDK杂记</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=SDK%E6%9D%82%E8%AE%B0&amp;diff=5539"/>
		<updated>2026-06-03T05:24:52Z</updated>

		<summary type="html">&lt;p&gt;Mahong: Created page with &amp;quot;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress== cloudpossdkV1.8.1.5开始支持 com.cloudpos.hsm.HSMDevice  HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context) .getDevice(POSTerminal.DEVICE_NAME_HSM); hsm.open();  // 单字段CSR（原接口） X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;); byte[] csr1 = hsm.gene...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==在生成CSR的时候，可以输入证书的常用域，包括：countryName, stateOrProvinceName, localityName, organizationName, organizationUnitName, commonName和emailAddress==&lt;br /&gt;
cloudpossdkV1.8.1.5开始支持&lt;br /&gt;
com.cloudpos.hsm.HSMDevice&lt;br /&gt;
&lt;br /&gt;
HSMDevice hsm = (HSMDevice) POSTerminal.getInstance(context)&lt;br /&gt;
.getDevice(POSTerminal.DEVICE_NAME_HSM);&lt;br /&gt;
hsm.open();&lt;br /&gt;
&lt;br /&gt;
// 单字段CSR（原接口）&lt;br /&gt;
X500Principal subject1 = new X500Principal(&amp;quot;CN=www.test.com&amp;quot;);&lt;br /&gt;
byte[] csr1 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject1);&lt;br /&gt;
&lt;br /&gt;
// 多字段CSR（#40841新支持CN/O/OU/C/ST/L）&lt;br /&gt;
X500Principal subject2 = new X500Principal(&lt;br /&gt;
&amp;quot;CN=pay.test.com,O=TestPayCorp,OU=Security Dept,C=CN,ST=Guangdong,L=Shenzhen&amp;quot;);&lt;br /&gt;
byte[] csr2 = hsm.generateCSR(&amp;quot;terminal&amp;quot;, subject2);&lt;br /&gt;
&lt;br /&gt;
hsm.close();&lt;br /&gt;
&lt;br /&gt;
权限：CLOUDPOS_SAFE_MODULE&lt;br /&gt;
前置条件：HSM需存在公私钥对（例如：terminal别名）&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5538</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5538"/>
		<updated>2026-06-03T05:20:36Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[SDK杂记]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/NBBiometrics_ANF_SDK_3_0_0_0311_2.zip Next指纹新的SDK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电，typeAUSB口可以连接UU线通讯， Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetoothtransactiondemo.zip 蓝牙发送交易的demo 源码，用来测试OPC的蓝牙协议] &lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetooth-transactiontest.apk 蓝牙发送交易的demo APK，用来测试OPC的蓝牙协议]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5537</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5537"/>
		<updated>2026-05-28T02:32:07Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/NBBiometrics_ANF_SDK_3_0_0_0311_2.zip Next指纹新的SDK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电，typeAUSB口可以连接UU线通讯， Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetoothtransactiondemo.zip 蓝牙发送交易的demo 源码，用来测试OPC的蓝牙协议] &lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bluetooth-transactiontest.apk 蓝牙发送交易的demo APK，用来测试OPC的蓝牙协议]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5536</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5536"/>
		<updated>2026-05-28T02:18:54Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/NBBiometrics_ANF_SDK_3_0_0_0311_2.zip Next指纹新的SDK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电，typeAUSB口可以连接UU线通讯， Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/techsupport/software/bluetoothtransactiondemo.zip 蓝牙发送交易的demo 源码，用来测试OPC的蓝牙协议] &lt;br /&gt;
[https://ftp.wizarpos.com/sdk/techsupport/software/bluetooth-transactiontest.apk 蓝牙发送交易的demo APK，用来测试OPC的蓝牙协议]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5535</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5535"/>
		<updated>2026-05-28T02:11:22Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/NBBiometrics_ANF_SDK_3_0_0_0311_2.zip Next指纹新的SDK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电，typeAUSB口可以连接UU线通讯， Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Chinese_Document&amp;diff=5534</id>
		<title>Chinese Document</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Chinese_Document&amp;diff=5534"/>
		<updated>2026-05-27T08:18:54Z</updated>

		<summary type="html">&lt;p&gt;Mahong: /* 文档 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==文档==&lt;br /&gt;
* [https://ftp.wizarpos.com/advanceSDK/支付接口操作文档.pdf 支付接口操作文档.pdf]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/慧银支付应用集成协议V2.3.10.pdf 慧银支付应用集成协议V2.3.10.pdf]&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
* 取消预授权应该传递什么参数? 是TransIndexCode吗？&lt;br /&gt;
不是， TransIndexCode每个交易都是唯一的，由三方应用自己保证唯一性，包括消费、撤销、预授权、预授权增加，预授权完成等交易。需要做撤销、增加、完成等交易，原交易的TransIndexCode送入OriTransIndexCode，对于其他的原交易数据送了都是Ori数据 TraceNum-&amp;gt;OriTraceNum&lt;br /&gt;
TransID-&amp;gt;OriTransId&lt;br /&gt;
InvoiceNum-&amp;gt;OriInvoiceNum&lt;br /&gt;
RRN-&amp;gt;OriRrn&lt;br /&gt;
* 预授权的金额，到发起预授权扣款的时间大概是多长时间？&lt;br /&gt;
一般是实时的，预授权是冻结，预授权完成是解冻，可以理解为消费交易，实时扣款。 预授权和预授权完成可以不是同时进行的，例如住酒店，今天预授权500元，明天离开酒店预授权完成400元，钱是预授权完成的时候扣的。&lt;br /&gt;
* 取消预授权：&lt;br /&gt;
撤销Reversal&lt;br /&gt;
* 预授权preauth发送请求消息后，等待一定时间后用户未刷卡会返回cancel，如果刷卡会立刻收到应答&lt;br /&gt;
* 退款refund，需要刷卡&lt;br /&gt;
* 但是退款有的版本是：发送refund的时候，如果订单已经完结，不用刷卡，会立刻成功。如果订单不存在，会等待1分钟后返回超时。&lt;br /&gt;
* 撤销，预授权完成不用刷卡&lt;br /&gt;
* 用户购物花了两元，我们发现算错了要退1元&lt;br /&gt;
这个场景可以用预授权2块，预授权完成1块实现，或者消费2块，消费撤销1块&lt;br /&gt;
* 撤销Reversal是不是只能撤销已经刷卡的预授权，因为这时有transID&lt;br /&gt;
如果用户未刷卡，这个预授权应如何取消， 可以使用协议数据CTRL: 0xC1 indicate Cancel Request&lt;br /&gt;
*  终端交易不允许并发，不过再等待刷卡界面可以接受串口过来交易&lt;br /&gt;
*  预授权完成之后不能在追加了，相当于已经完成一笔扣款了，所以要明确预授权完整之前进行预授权增加; 完成之后在想增加扣款，除非重新刷卡，重新发预授权和预授权完成; 或者发一笔刷卡消费。 预授权增加可以发多次，完成只能发一次。&lt;br /&gt;
* 结算【settle】，每天指定时间，执行一次吗？是的。&lt;br /&gt;
* 测试结算时，不用传金额, 是应该把未结算的交易都自动结算吗？是的，不用传金额。&lt;br /&gt;
* 二维码支付，是扫手机上的二维码支付，不会在POS机上显示二维码。手机是被扫。&lt;br /&gt;
* 币种跟最小单位参考: [https://en.wikipedia.org/wiki/ISO_4217 en] [https://zh.wikipedia.org/wiki/ISO_4217 zh]&lt;br /&gt;
* transAmount传入的都是整数字符串，具体金额是多少，要看上面的最小单位，比如单位是2， 那么金额有两个小数点。&lt;br /&gt;
* refund可以多次调用吗，比如扣了10元，分三次退了2，6，2? 离线支付是允许的，要看具体的支付通道，大部分都支持这种形式的退款。&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Core_Protocol&amp;diff=5533</id>
		<title>Core Protocol</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Core_Protocol&amp;diff=5533"/>
		<updated>2026-05-27T08:18:21Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Regardless of the connection method used, data must be sent and received in accordance with this payment protocol document.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/WIZARPOSPaymentAppIntegrationProtocolV2.3.10.pdf WIZARPOSPaymentAppIntegrationProtocolV2.3.10.pdf]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5532</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5532"/>
		<updated>2026-05-27T08:14:50Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.9_2605251.apk Payment Emulator2.3.9]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_APP_V2.9.1-global-release.apk PayWizard_V2.9.1]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5531</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5531"/>
		<updated>2026-05-27T08:12:47Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.9_2605251.apk Payment Emulator2.3.9]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_V2.8.6-global-release.apk PayWizard_V2.8.6]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5530</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Firmware&amp;diff=5530"/>
		<updated>2026-05-22T08:51:00Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==固件相关==&lt;br /&gt;
[[FAQ杂记]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/SOPofupdatefirmwareofQ3R_NB(D22).pdf 把Q3从D22上拆下来，切换固件的spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/PINPadDeviceTR31keyusage.pdf PINPadDeviceTR31_keyusage.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/A400-M-V8.pdf 亚略特指纹A400 spec]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip 亚略特指纹SDK-Aratek_BMApi_SPISDKv3.17.2.2_2025.03.14.zip]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/nextBiometricsSDKDemo Next指纹demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/NBBiometrics_ANF_SDK_3_0_0_0311_2.zip Next指纹新的SDK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wifi802.1x-cert-demo.mp4 Connecting POS to an 802.1x Wifi SSID]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/IssueAPPRootCertificateProcess_forTrustedAPK.pdf 为特定APK签发app根证书并注入到终端过程，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/经纬度距离换算.png 经纬度距离换算.png]&lt;br /&gt;
&lt;br /&gt;
[[电池相关属性值含义]]&lt;br /&gt;
&lt;br /&gt;
[[Release Notes]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2firmwareswitchmode.pdf 切换固件(eng-user/user-eng)Q2 Firmware Switch Mode between eng and user]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarPOSTerminalCertificateGuide_en.pdf 终端证书介绍TerminalCertificateGuide]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2安卓6系列.xls Q2安卓6主板PCB的对应关系]&lt;br /&gt;
&lt;br /&gt;
[[怎么调试动画效果]]&lt;br /&gt;
&lt;br /&gt;
[[触发原因内部详细解释]]&lt;br /&gt;
&lt;br /&gt;
[[系统日志关键字]]&lt;br /&gt;
&lt;br /&gt;
[[How to reset transport key/master key]]&lt;br /&gt;
&lt;br /&gt;
[[How to silence install、update、delete]]&lt;br /&gt;
&lt;br /&gt;
[[JNI API and C API (Deprecated)]] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/device/java/javadoc_20250617.zip javadoc_20250617.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/emv/javadoc_emv_250120.zip java_doc_emv.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_spainupdatetransportkey.zip javadoc_spainupdatetransportkey.zip] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/javadoc_visiontekupdatetransferkey.zip javadoc_visiontekupdatetransferkey.zip] &lt;br /&gt;
&lt;br /&gt;
[http://sdkwiki.wizarpos.com/wizarposapi/ Java API Spec] &lt;br /&gt;
&lt;br /&gt;
[[PINPAD UI设置总结]]&lt;br /&gt;
&lt;br /&gt;
[[终端发热问题]]&lt;br /&gt;
&lt;br /&gt;
==各种APK相关==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/RecoveryOwner-app-release-1.1.apk 清除证书APK（远程注主密钥demo系统的初始化证书，Q2A7,Q2P上已测试）] &lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/EnableDisableAppStatus.Play-release-v4.0.2-r20241125142958-q1_platform.apk 默认隐藏playstore的机器，运行APK可以临时enable，需Admin登录，给需要的客户发]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS_PDA_1.0.6_20250122_release.apk Q3PDA Android NFC测试demo]  [https://ftp.wizarpos.com/techsupport/software/LaunchpaySoftPOS-demo.mp4 Q3PDA Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/MobileEmvNFC.apk  Q3Mini, Q2P, Q3Pro Android NFC测试demo演示]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nextBiometricsSDKDemo250409.apk  Next指纹的测试APK, 用我们git上的项目编译的]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/nbbiometrics-scan-and-extract-sample-android0316.apk  Next指纹的测试APK, Q2P/Q2PU平台]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocHighAccuracy-release-v1.0.11-r20250221101958-SetSystemStatus.Location-q1_platform.apk  设置Location mode to High Accuracy（高精度）APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ForceEnableLocDeviceOnly-release-v1.0.11-r20250221145841-SetSystemStatus.Location-q1_platform.apk  设置Location mode to Device Only APK， 安装后自动运行]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/cellularz_948559.apk  Cellularz工具，能获取到当前的band 和cellid信息]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.64_Free-464_minAPI24(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具 不支持Android6，可以测试网络速度] [https://ftp.wizarpos.com/techsupport/software/pingtooltestvideo.mp4 测试视频] [https://ftp.wizarpos.com/advanceSDK/ua.com.streamsoft.pingtools_4.52_Free-452_minAPI21(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk Ping工具，支持Android 6以上，可以测试网络速度] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Injection相关==&lt;br /&gt;
* 注入密钥时候的Dukpt Counter，底层定义了4 bytes, 数据转换的时候，使用big Endine, 比如实际counter是004F, 注密钥的时候，要转成[0x00, 0x00, 0x00, 0x4F]&lt;br /&gt;
&lt;br /&gt;
==产品相关==&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/specs/wizarPOSModels.xlsx wizarPOSModels.xlsx]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarpos使用手册2.pdf W1使用手册]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/产品培训_0706.pdf 产品培训_0706(Q3+Q2)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3各submodel特性.pdf Q3各submodel特性]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Mini.pdf Q3 Mini 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Pro.pdf Q3 Pro 只能发给需要的客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3PDA.pdf Q3PDA.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q2PRO.pdf Q2PRO.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q1K.pdf Q1K.pdf]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/Q3Minicountertop.pdf Q3Minicountertop,typeC口仅用于充电，typeAUSB口可以连接UU线通讯， Q3MINI Android 12版本目前规则：Q3mini-C,SN号0CQ3，为PCBA无需特殊处理&lt;br /&gt;
Q3mini-H,SN号为1CQ3，为PCBB，需要特殊固件&lt;br /&gt;
在打包工具上下载后，需要单独把hwcfg_facttest-PCBB版本放进去， 后续后升级到Android 14]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/TCETC-D1ModuleR1_1(TCS1).pdf Crossmatch指纹DataSheet]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/wizarposCommissioningApplicationForm.xlsx UPT适配用的申请表]&lt;br /&gt;
&lt;br /&gt;
[[D22相关]]&lt;br /&gt;
&lt;br /&gt;
[[D3相关]]&lt;br /&gt;
&lt;br /&gt;
==应用相关==&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_SelfDiag_V2.0.2.apk Visiontek开发的测试APK]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/VA21_Selfdiag_V2.0.2.zip Visiontek开发的测试应用源码]&lt;br /&gt;
&lt;br /&gt;
[[设置PIN keypad固定顺序显示]]&lt;br /&gt;
&lt;br /&gt;
[[手工输入主密钥过程]]&lt;br /&gt;
&lt;br /&gt;
[[zipalign命令]]&lt;br /&gt;
&lt;br /&gt;
[[非系统应用怎样设置不能卸载/删除]]&lt;br /&gt;
&lt;br /&gt;
[[TF卡/U盘怎么配置自动安装应用]]&lt;br /&gt;
&lt;br /&gt;
[[安装卸载应用定义的错误码]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/corretto-1.8.0_312_simplewithsignaturetool.rar 签名工具包含JRE+signaturetoolv2.5-79(无Java环境者适用)]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/Q2_Secure_Application_Development_Guidance.pdf Q2_Secure_Application_Development_Guidance.pdf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[支付相关内部用]]&lt;br /&gt;
&lt;br /&gt;
===没有在gitbook公开的应用列表===&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ModifyAdminPswd.git 修改Admin password,无Icon, 安装后自动后台运行]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintTxtCmpHtml.git 打印text,html比较demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/InitCertAppDemo.git 注入证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/PrintPDFTestDemo.git 打印demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/QueryCertificatesDemo.git 查询终端证书demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/APNwithAirplane.git 设置APN，开关飞行模式demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/CloudPOSCamera.git Camera demo]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/UsbMtpAPIDemo Enable MTP demo App]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/wakeLockDemo.git WakeLock demo App]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/SberBankHsmDemo.zip SberBankHsmDemo.zip evotor固件检测触发状态，解触发接口demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/mpay_injectkey_example(1).zip MPay注入密钥的sample]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SmartPOSSamples/ScanDemo 扫码demo]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/apks/relayDemo.zip 源码relayDemo.zip] [https://ftp.wizarpos.com/techsupport/apks/relayDemo-1.0.apk APKrelayDemo-1.0.apk]通过ext串口连继电器&lt;br /&gt;
[https://ftp.wizarpos.com/sdk/advanceSDK/wifiConfigDemo.zip 源码配置wifi的802.1证书代码]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/H21修改NV67330工具.rar H21修改NV67330工具.rar]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DES计算器.rar DES计算器]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/DukptServerDemo.zip Dukpt算法工具，不能发客户]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/bp-tools-21.05-739-master-4210077.zip bp-tools-21.05-739-master-4210077.zip]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/qpst.win.2.7_installer_00470.6.zip QPST/PDC工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/LTENVReadToolV1.0.1.rar Read NV工具]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/software/WI-PD-002产品与物料编码规则.pdf 包括电池SN规则在内的物料编码规则]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/advanceSDK/PDF-Reader.apk 简易PDF reader APK]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5529</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5529"/>
		<updated>2026-05-09T03:34:07Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.8_2605091.apk Payment Emulator2.3.8]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_V2.8.6-global-release.apk PayWizard_V2.8.6]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5528</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5528"/>
		<updated>2026-05-09T02:14:11Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.7_2605082.apk Payment Emulator2.3.7]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_V2.8.6-global-release.apk PayWizard_V2.8.6]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5527</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5527"/>
		<updated>2026-05-08T03:18:30Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.6_2605071.apk Payment Emulator2.3.6]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_V2.8.6-global-release.apk PayWizard_V2.8.6]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5526</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5526"/>
		<updated>2026-05-08T03:18:02Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/paymentPayWizard_Demo_V2.3.6_2605071.apk Payment Emulator2.3.6]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_V2.8.6-global-release.apk PayWizard_V2.8.6]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5525</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5525"/>
		<updated>2026-04-30T06:28:38Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.4_2603251.apk Payment Emulator2.3.4]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_V2.8.6-global-release.apk PayWizard_V2.8.6]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Chinese_Document&amp;diff=5524</id>
		<title>Chinese Document</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Chinese_Document&amp;diff=5524"/>
		<updated>2026-04-13T09:40:19Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==文档==&lt;br /&gt;
* [https://ftp.wizarpos.com/advanceSDK/支付接口操作文档.pdf 支付接口操作文档.pdf]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/慧银支付应用集成协议V2.3.6.pdf 慧银支付应用集成协议V2.3.6.pdf]&lt;br /&gt;
==FAQ==&lt;br /&gt;
* 取消预授权应该传递什么参数? 是TransIndexCode吗？&lt;br /&gt;
不是， TransIndexCode每个交易都是唯一的，由三方应用自己保证唯一性，包括消费、撤销、预授权、预授权增加，预授权完成等交易。需要做撤销、增加、完成等交易，原交易的TransIndexCode送入OriTransIndexCode，对于其他的原交易数据送了都是Ori数据 TraceNum-&amp;gt;OriTraceNum&lt;br /&gt;
TransID-&amp;gt;OriTransId&lt;br /&gt;
InvoiceNum-&amp;gt;OriInvoiceNum&lt;br /&gt;
RRN-&amp;gt;OriRrn&lt;br /&gt;
* 预授权的金额，到发起预授权扣款的时间大概是多长时间？&lt;br /&gt;
一般是实时的，预授权是冻结，预授权完成是解冻，可以理解为消费交易，实时扣款。 预授权和预授权完成可以不是同时进行的，例如住酒店，今天预授权500元，明天离开酒店预授权完成400元，钱是预授权完成的时候扣的。&lt;br /&gt;
* 取消预授权：&lt;br /&gt;
撤销Reversal&lt;br /&gt;
* 预授权preauth发送请求消息后，等待一定时间后用户未刷卡会返回cancel，如果刷卡会立刻收到应答&lt;br /&gt;
* 退款refund，需要刷卡&lt;br /&gt;
* 但是退款有的版本是：发送refund的时候，如果订单已经完结，不用刷卡，会立刻成功。如果订单不存在，会等待1分钟后返回超时。&lt;br /&gt;
* 撤销，预授权完成不用刷卡&lt;br /&gt;
* 用户购物花了两元，我们发现算错了要退1元&lt;br /&gt;
这个场景可以用预授权2块，预授权完成1块实现，或者消费2块，消费撤销1块&lt;br /&gt;
* 撤销Reversal是不是只能撤销已经刷卡的预授权，因为这时有transID&lt;br /&gt;
如果用户未刷卡，这个预授权应如何取消， 可以使用协议数据CTRL: 0xC1 indicate Cancel Request&lt;br /&gt;
*  终端交易不允许并发，不过再等待刷卡界面可以接受串口过来交易&lt;br /&gt;
*  预授权完成之后不能在追加了，相当于已经完成一笔扣款了，所以要明确预授权完整之前进行预授权增加; 完成之后在想增加扣款，除非重新刷卡，重新发预授权和预授权完成; 或者发一笔刷卡消费。 预授权增加可以发多次，完成只能发一次。&lt;br /&gt;
* 结算【settle】，每天指定时间，执行一次吗？是的。&lt;br /&gt;
* 测试结算时，不用传金额, 是应该把未结算的交易都自动结算吗？是的，不用传金额。&lt;br /&gt;
* 二维码支付，是扫手机上的二维码支付，不会在POS机上显示二维码。手机是被扫。&lt;br /&gt;
* 币种跟最小单位参考: [https://en.wikipedia.org/wiki/ISO_4217 en] [https://zh.wikipedia.org/wiki/ISO_4217 zh]&lt;br /&gt;
* transAmount传入的都是整数字符串，具体金额是多少，要看上面的最小单位，比如单位是2， 那么金额有两个小数点。&lt;br /&gt;
* refund可以多次调用吗，比如扣了10元，分三次退了2，6，2? 离线支付是允许的，要看具体的支付通道，大部分都支持这种形式的退款。&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Core_Protocol&amp;diff=5523</id>
		<title>Core Protocol</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Core_Protocol&amp;diff=5523"/>
		<updated>2026-04-13T09:38:37Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Regardless of the connection method used, data must be sent and received in accordance with this payment protocol document.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/WIZARPOSPaymentAppIntegrationProtocolV2.3.6.pdf WIZARPOSPaymentAppIntegrationProtocolV2.3.6.pdf]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Core_Protocol&amp;diff=5522</id>
		<title>Core Protocol</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Core_Protocol&amp;diff=5522"/>
		<updated>2026-04-13T09:38:12Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Regardless of the connection method used, data must be sent and received in accordance with this payment protocol document.&lt;br /&gt;
* [https://ftp.wizarpos.com/paymentWIZARPOSPaymentAppIntegrationProtocolV2.3.6.pdf WIZARPOSPaymentAppIntegrationProtocolV2.3.6.pdf]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5521</id>
		<title>Payment Apps</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_Apps&amp;diff=5521"/>
		<updated>2026-03-27T07:44:57Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The two payment apps need install to terminal firstly. Please provide serial numbers of the debug terminal, WizarPOS will push latest version remotely.&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/PayWizard_Demo_V2.3.4_2603251.apk Payment Emulator2.3.4]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/OPC_V2.6.0-global-release.apk PAYwizard2.6.0.apk]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81%E6%B2%9F%E9%80%9A%E6%8C%87%E5%BC%95&amp;diff=5520</id>
		<title>技术支持沟通指引</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81%E6%B2%9F%E9%80%9A%E6%8C%87%E5%BC%95&amp;diff=5520"/>
		<updated>2026-03-25T02:54:25Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==关于客户支付方面的沟通流程==&lt;br /&gt;
1. 询问客户是否在终端上开发应用？&lt;br /&gt;
&lt;br /&gt;
不是：参考[[Local Integration (External Device)]]&lt;br /&gt;
&lt;br /&gt;
是，转2&lt;br /&gt;
&lt;br /&gt;
2. 询问客户，是否有支付后台？应用要连自己的支付后台吗？&lt;br /&gt;
&lt;br /&gt;
不是：参考[[Internal Integration (POS App Development)]]&lt;br /&gt;
&lt;br /&gt;
是：转3&lt;br /&gt;
&lt;br /&gt;
3. 询问客户，和自己支付后台的开发已经好了吗？&lt;br /&gt;
&lt;br /&gt;
不是：提供EMV接口，参考https://smartpossdk.gitbook.io/cloudpossdk/cloudpos-sdk/emv-develop-spec&lt;br /&gt;
&lt;br /&gt;
是，那么客户需要提供AIDL接口给OPC，OPC适配后，就可以使用客户的支付了&lt;br /&gt;
&lt;br /&gt;
参考[[Payment App Development]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81%E6%B2%9F%E9%80%9A%E6%8C%87%E5%BC%95&amp;diff=5519</id>
		<title>技术支持沟通指引</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81%E6%B2%9F%E9%80%9A%E6%8C%87%E5%BC%95&amp;diff=5519"/>
		<updated>2026-03-25T02:54:09Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{currentloggeduser}}||&lt;br /&gt;
    &amp;lt;div style=&amp;quot;background-color: #ffcccc;border: 1px dashed red; padding: 10px;&amp;quot;&amp;gt;&lt;br /&gt;
This content is restricted to authorized users only. Please [[Special:UserLogin|log in]] to access additional information.	&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
==关于客户支付方面的沟通流程==&lt;br /&gt;
1. 询问客户是否在终端上开发应用？&lt;br /&gt;
&lt;br /&gt;
不是：参考[[Local Integration (External Device)]]&lt;br /&gt;
是，转2&lt;br /&gt;
&lt;br /&gt;
2. 询问客户，是否有支付后台？应用要连自己的支付后台吗？&lt;br /&gt;
&lt;br /&gt;
不是：参考[[Internal Integration (POS App Development)]]&lt;br /&gt;
是：转3&lt;br /&gt;
&lt;br /&gt;
3. 询问客户，和自己支付后台的开发已经好了吗？&lt;br /&gt;
&lt;br /&gt;
不是：提供EMV接口，参考https://smartpossdk.gitbook.io/cloudpossdk/cloudpos-sdk/emv-develop-spec&lt;br /&gt;
&lt;br /&gt;
是，那么客户需要提供AIDL接口给OPC，OPC适配后，就可以使用客户的支付了&lt;br /&gt;
&lt;br /&gt;
参考[[Payment App Development]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Local_Integration_(External_Device)&amp;diff=5518</id>
		<title>Local Integration (External Device)</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Local_Integration_(External_Device)&amp;diff=5518"/>
		<updated>2026-03-24T06:47:22Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Suitable for scenarios where no application development on the POS terminal is needed. In this case, the Vendor Machine communicates directly with the PAYWizard on the terminal. The communication between the POS terminal and the Vendor Machine supports serial port, MDB (Multi-Drop Bus), Socket, and other protocols.&lt;br /&gt;
Apart from the MDB communication method, all data transmission and reception shall be carried out in accordance with the protocol document: [[Core Protocol]].&lt;br /&gt;
* Reference for data packaging and unpacking：[https://ftp.wizarpos.com/advanceSDK/PaymentApp/Serial&amp;amp;SocketDemo240910.zip Serial&amp;amp;SocketDemo240910.zip]&lt;br /&gt;
* A simple [https://ftp.wizarpos.com/techsupport/ticket/fowchartnoappdevelop.png flow chart]&lt;br /&gt;
* See also, [https://smartpossdk.gitbook.io/paywizard-open-api/semi-integration/local-integration local-integration]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Local_Integration_(External_Device)&amp;diff=5517</id>
		<title>Local Integration (External Device)</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Local_Integration_(External_Device)&amp;diff=5517"/>
		<updated>2026-03-24T06:47:05Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Suitable for scenarios where no application development on the POS terminal is needed. In this case, the Vendor Machine communicates directly with the PAYWizard on the terminal. The communication between the POS terminal and the Vendor Machine supports serial port, MDB (Multi-Drop Bus), Socket, and other protocols.&lt;br /&gt;
Apart from the MDB communication method, all data transmission and reception shall be carried out in accordance with the protocol document: [[Core Protocol]].&lt;br /&gt;
* Reference for data packaging and unpacking：[https://ftp.wizarpos.com/advanceSDK/PaymentApp/Serial&amp;amp;SocketDemo240910.zip Serial&amp;amp;SocketDemo240910.zip]&lt;br /&gt;
* A simple [https://ftp.wizarpos.com/techsupport/ticket/fowchartnoappdevelop.png Serial&amp;amp;SocketDemo240910.zip flow chart]&lt;br /&gt;
* See also, [https://smartpossdk.gitbook.io/paywizard-open-api/semi-integration/local-integration local-integration]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Local_Integration_(External_Device)&amp;diff=5516</id>
		<title>Local Integration (External Device)</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Local_Integration_(External_Device)&amp;diff=5516"/>
		<updated>2026-03-20T09:54:35Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Suitable for scenarios where no application development on the POS terminal is needed. In this case, the Vendor Machine communicates directly with the PAYWizard on the terminal. The communication between the POS terminal and the Vendor Machine supports serial port, MDB (Multi-Drop Bus), Socket, and other protocols.&lt;br /&gt;
Apart from the MDB communication method, all data transmission and reception shall be carried out in accordance with the protocol document: [[Core Protocol]].&lt;br /&gt;
* Reference for data packaging and unpacking：[https://ftp.wizarpos.com/advanceSDK/PaymentApp/Serial&amp;amp;SocketDemo240910.zip Serial&amp;amp;SocketDemo240910.zip]&lt;br /&gt;
* See also, [https://smartpossdk.gitbook.io/paywizard-open-api/semi-integration/local-integration local-integration]&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Internal_Integration_(POS_App_Development)&amp;diff=5515</id>
		<title>Internal Integration (POS App Development)</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Internal_Integration_(POS_App_Development)&amp;diff=5515"/>
		<updated>2026-03-20T09:40:03Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing normal applications on the terminal. The application can call the AIDL interface provided by the PAYWizard application to perform different types of transactions. In this mode, PAYWizard does not communicate with the Vendor Machine; the self-developed application is responsible for communicating with the Vendor Machine.&lt;br /&gt;
&lt;br /&gt;
Here is a demo app that calls the PAYWizard AIDL interface: [https://github.com/SmartPOSSamples/PayMentAIDLDemo PayMentAIDLDemo]&lt;br /&gt;
&lt;br /&gt;
Please send and receive data according to this protocal document:[[Core Protocol]]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/ticket/flowchartofdevelopnormalapp.png Here is a flowchart]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/PayMentAidlDemo_release_V1.0.6_20260114.apk PayMentAidlDemo_release_V1.0.6_20260114]&lt;br /&gt;
&lt;br /&gt;
See also, [https://smartpossdk.gitbook.io/paywizard-open-api/semi-integration/internal-integration internal-integration]&lt;br /&gt;
&lt;br /&gt;
====Best practice for payment in D22(D3)/Q3(Q2)====&lt;br /&gt;
For developing applications on the D22.&lt;br /&gt;
* Install [https://ftp.wizarpos.com/payment/AccessoryAgentHostService-master-release-v1.0.30-r20251208115422-q1_platform.apk the new accessory agent] on D22(D3)/Q3(Q2)&lt;br /&gt;
* Install initconnectionmode on D22/Q3, configure master and slave. This step is usually pre-initialized at the factory and does not require further configuration by the customer.&lt;br /&gt;
* Install PAYwizard app on D22/Q3&lt;br /&gt;
* Set protocal of PAYwizard to DEFAULT on D22, and set the payment package name to com.wizarpos.opc&lt;br /&gt;
* Set protocal of PAYwizard to USB ACCESSORY on Q3, and set the payment package name to com.wizarpos.paywizard.demo&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Internal_Integration_(POS_App_Development)&amp;diff=5514</id>
		<title>Internal Integration (POS App Development)</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Internal_Integration_(POS_App_Development)&amp;diff=5514"/>
		<updated>2026-03-20T09:39:23Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing normal applications on the terminal. The application can call the AIDL interface provided by the PAYWizard application to perform different types of transactions. In this mode, PAYWizard does not communicate with the Vendor Machine; the self-developed application is responsible for communicating with the Vendor Machine.&lt;br /&gt;
&lt;br /&gt;
Here is a demo app that calls the PAYWizard AIDL interface: [https://github.com/SmartPOSSamples/PayMentAIDLDemo PayMentAIDLDemo]&lt;br /&gt;
&lt;br /&gt;
Please send and receive data according to this protocal document:[[Core Protocol]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/techsupport/ticket/flowchartofdevelopnormalapp.png Here is a flowchart]&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/PayMentAidlDemo_release_V1.0.6_20260114.apk PayMentAidlDemo_release_V1.0.6_20260114]&lt;br /&gt;
&lt;br /&gt;
See also, [https://smartpossdk.gitbook.io/paywizard-open-api/semi-integration/internal-integration internal-integration]&lt;br /&gt;
&lt;br /&gt;
====Best practice for payment in D22(D3)/Q3(Q2)====&lt;br /&gt;
For developing applications on the D22.&lt;br /&gt;
* Install [https://ftp.wizarpos.com/payment/AccessoryAgentHostService-master-release-v1.0.30-r20251208115422-q1_platform.apk the new accessory agent] on D22(D3)/Q3(Q2)&lt;br /&gt;
* Install initconnectionmode on D22/Q3, configure master and slave. This step is usually pre-initialized at the factory and does not require further configuration by the customer.&lt;br /&gt;
* Install PAYwizard app on D22/Q3&lt;br /&gt;
* Set protocal of PAYwizard to DEFAULT on D22, and set the payment package name to com.wizarpos.opc&lt;br /&gt;
* Set protocal of PAYwizard to USB ACCESSORY on Q3, and set the payment package name to com.wizarpos.paywizard.demo&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5513</id>
		<title>Payment App Development</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5513"/>
		<updated>2026-03-20T09:13:17Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing payment application on the terminal. This payment application interacts with the bank and provides the AIDL interface of the payment function to the PAYwizard to call. &lt;br /&gt;
&lt;br /&gt;
In the payment app, should include two implement：&lt;br /&gt;
&lt;br /&gt;
1. Please refer to [https://github.com/SmartPOSSamples/AidlServiceDemo AidlServiceDemo which provided AIDL to PAYwizard app]. The package name of this payment app demo is: com.wizarpos.aidlservicedemo.&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/OPCPaymentIntegrationScheme2025.pdf Here is the description of the scheme].&lt;br /&gt;
&lt;br /&gt;
2. Call EMV kernel interface to implement the payment, please refer to [https://smartpossdk.gitbook.io/cloudpossdk/cloudpos-sdk/emv-develop-spec EMV SPEC].&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/techsupport/ticket/flowchartofpaymentappdevelop.png Here is a flowchart].&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=File:Flowchartofpaymentdevelop.png&amp;diff=5512</id>
		<title>File:Flowchartofpaymentdevelop.png</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=File:Flowchartofpaymentdevelop.png&amp;diff=5512"/>
		<updated>2026-03-20T09:08:03Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5511</id>
		<title>Payment App Development</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5511"/>
		<updated>2026-03-20T09:05:27Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing payment application on the terminal. This payment application interacts with the bank and provides the AIDL interface of the payment function to the PAYwizard to call. &lt;br /&gt;
&lt;br /&gt;
In the payment app, should include two implement：&lt;br /&gt;
&lt;br /&gt;
1. Please refer to [https://github.com/SmartPOSSamples/AidlServiceDemo AidlServiceDemo which provided AIDL to PAYwizard app]. The package name of this payment app demo is: com.wizarpos.aidlservicedemo.&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/OPCPaymentIntegrationScheme2025.pdf Here is the description of the scheme].&lt;br /&gt;
&lt;br /&gt;
2. Call EMV kernel interface to implement the payment, please refer to [https://smartpossdk.gitbook.io/cloudpossdk/cloudpos-sdk/emv-develop-spec EMV SPEC].&lt;br /&gt;
&lt;br /&gt;
Here is a flowchart:&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5510</id>
		<title>Payment App Development</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5510"/>
		<updated>2026-03-20T08:50:26Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing payment application on the terminal. This payment application interacts with the bank and provides the AIDL interface of the payment function to the PAYwizard to call. &lt;br /&gt;
&lt;br /&gt;
In the payment app, should include two implement：&lt;br /&gt;
&lt;br /&gt;
1. Please refer to [https://github.com/SmartPOSSamples/AidlServiceDemo AidlServiceDemo which provided AIDL to PAYwizard app]. The package name of this payment app demo is: com.wizarpos.aidlservicedemo.&lt;br /&gt;
&lt;br /&gt;
[https://ftp.wizarpos.com/payment/OPCPaymentIntegrationScheme2025.pdf Here is the description of the scheme].&lt;br /&gt;
&lt;br /&gt;
2. Call EMV kernel interface to implement the payment, please refer to [https://smartpossdk.gitbook.io/cloudpossdk/cloudpos-sdk/emv-develop-spec EMV SPEC].&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5509</id>
		<title>Payment App Development</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5509"/>
		<updated>2026-03-20T08:49:29Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing payment application on the terminal. This payment application interacts with the bank and provides the AIDL interface of the payment function to the PAYwizard to call. &lt;br /&gt;
&lt;br /&gt;
In the payment app, should include two implement：&lt;br /&gt;
&lt;br /&gt;
1. Please refer to [https://github.com/SmartPOSSamples/AidlServiceDemo AidlServiceDemo which provided AIDL to PAYwizard app]. The package name of this payment app demo is: com.wizarpos.aidlservicedemo.&lt;br /&gt;
&lt;br /&gt;
And a description: [https://ftp.wizarpos.com/payment/OPCPaymentIntegrationScheme2025.pdf Description of the scheme].&lt;br /&gt;
&lt;br /&gt;
2. Call EMV kernel interface to implement the payment, please refer to [https://smartpossdk.gitbook.io/cloudpossdk/cloudpos-sdk/emv-develop-spec EMV SPEC].&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5508</id>
		<title>Payment App Development</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Payment_App_Development&amp;diff=5508"/>
		<updated>2026-03-20T08:44:18Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is suitable for developing payment application on the terminal. This payment application interacts with the bank and provides the AIDL interface of the payment function to the PAYwizard to call. &lt;br /&gt;
&lt;br /&gt;
In the payment app, should include two implement：&lt;br /&gt;
&lt;br /&gt;
1. Please refer to [https://github.com/SmartPOSSamples/AidlServiceDemo AidlServiceDemo which provided AIDL to PAYwizard app].&lt;br /&gt;
&lt;br /&gt;
Here is a manual:[https://ftp.wizarpos.com/techsupport/ticket/WIZARPOSPaymentAppAIDLManualV1.0.5.pdf  AIDLManualV1.0.5.pdf]. &lt;br /&gt;
&lt;br /&gt;
And a description: [https://ftp.wizarpos.com/payment/OPCPaymentIntegrationScheme2025.pdf Description of the scheme].&lt;br /&gt;
&lt;br /&gt;
2. Call EMV kernel interface to implement the payment, please refer to [https://smartpossdk.gitbook.io/cloudpossdk/cloudpos-sdk/emv-develop-spec EMV SPEC].&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Chinese_Document&amp;diff=5507</id>
		<title>Chinese Document</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Chinese_Document&amp;diff=5507"/>
		<updated>2026-03-20T02:57:00Z</updated>

		<summary type="html">&lt;p&gt;Mahong: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==文档==&lt;br /&gt;
* [https://ftp.wizarpos.com/advanceSDK/支付接口操作文档.pdf 支付接口操作文档.pdf]&lt;br /&gt;
* [https://ftp.wizarpos.com/payment/慧银支付应用集成协议V2.3.4.pdf 慧银支付应用集成协议V2.3.4.pdf]&lt;br /&gt;
==FAQ==&lt;br /&gt;
* 取消预授权应该传递什么参数? 是TransIndexCode吗？&lt;br /&gt;
不是， TransIndexCode每个交易都是唯一的，由三方应用自己保证唯一性，包括消费、撤销、预授权、预授权增加，预授权完成等交易。需要做撤销、增加、完成等交易，原交易的TransIndexCode送入OriTransIndexCode，对于其他的原交易数据送了都是Ori数据 TraceNum-&amp;gt;OriTraceNum&lt;br /&gt;
TransID-&amp;gt;OriTransId&lt;br /&gt;
InvoiceNum-&amp;gt;OriInvoiceNum&lt;br /&gt;
RRN-&amp;gt;OriRrn&lt;br /&gt;
* 预授权的金额，到发起预授权扣款的时间大概是多长时间？&lt;br /&gt;
一般是实时的，预授权是冻结，预授权完成是解冻，可以理解为消费交易，实时扣款。 预授权和预授权完成可以不是同时进行的，例如住酒店，今天预授权500元，明天离开酒店预授权完成400元，钱是预授权完成的时候扣的。&lt;br /&gt;
* 取消预授权：&lt;br /&gt;
撤销Reversal&lt;br /&gt;
* 预授权preauth发送请求消息后，等待一定时间后用户未刷卡会返回cancel，如果刷卡会立刻收到应答&lt;br /&gt;
* 退款refund，需要刷卡&lt;br /&gt;
* 但是退款有的版本是：发送refund的时候，如果订单已经完结，不用刷卡，会立刻成功。如果订单不存在，会等待1分钟后返回超时。&lt;br /&gt;
* 撤销，预授权完成不用刷卡&lt;br /&gt;
* 用户购物花了两元，我们发现算错了要退1元&lt;br /&gt;
这个场景可以用预授权2块，预授权完成1块实现，或者消费2块，消费撤销1块&lt;br /&gt;
* 撤销Reversal是不是只能撤销已经刷卡的预授权，因为这时有transID&lt;br /&gt;
如果用户未刷卡，这个预授权应如何取消， 可以使用协议数据CTRL: 0xC1 indicate Cancel Request&lt;br /&gt;
*  终端交易不允许并发，不过再等待刷卡界面可以接受串口过来交易&lt;br /&gt;
*  预授权完成之后不能在追加了，相当于已经完成一笔扣款了，所以要明确预授权完整之前进行预授权增加; 完成之后在想增加扣款，除非重新刷卡，重新发预授权和预授权完成; 或者发一笔刷卡消费。 预授权增加可以发多次，完成只能发一次。&lt;br /&gt;
* 结算【settle】，每天指定时间，执行一次吗？是的。&lt;br /&gt;
* 测试结算时，不用传金额, 是应该把未结算的交易都自动结算吗？是的，不用传金额。&lt;br /&gt;
* 二维码支付，是扫手机上的二维码支付，不会在POS机上显示二维码。手机是被扫。&lt;br /&gt;
* 币种跟最小单位参考: [https://en.wikipedia.org/wiki/ISO_4217 en] [https://zh.wikipedia.org/wiki/ISO_4217 zh]&lt;br /&gt;
* transAmount传入的都是整数字符串，具体金额是多少，要看上面的最小单位，比如单位是2， 那么金额有两个小数点。&lt;br /&gt;
* refund可以多次调用吗，比如扣了10元，分三次退了2，6，2? 离线支付是允许的，要看具体的支付通道，大部分都支持这种形式的退款。&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
</feed>