PhonePe集成报错:Package Signature Mismatched,如何匹配应用包签名?
问题:PhonePe SDK初始化报错
PACKAGE_SIGNATURE_MISMATCHED 问题代码(Dart)
void _initPhonePeSdk() { PhonePePaymentSdk.init('SANDBOX', merchantId, userId.isNotEmpty ? userId : "USERID", enableLogs) .then((isInitialized) => { setState(() { result = 'PhonePe SDK Initialized - $isInitialized'; }) }) .catchError((error) { print('eeeeeeeeeeee: $error'); _handleError(error); return <dynamic>{}; }); }
错误日志
I/phonepe_payment_sdk(29679): started init I/InitHandler_PPE(29679): initializing SDK with mid = MERCHANTUAT, env = SANDBOX I/ObjectFactory_PPE(29679): validating context provided to sdk I/ObjectFactory_PPE(29679): context provided is valid I/InitHandler_PPE(29679): SDK initialized, flow id = USERID I/EventIng_PPE(29679): new event to save= {"eventData":{"sdkApiName":"INIT","manifestMerchantId":"MERCHANTUAT","manifestAppId":"","sdkEnvKey":"SANDBOX","flowId":"USERID","sessionId":"79dbebc15729444e93a325b10867a47d","sdkEventCounter":4},"eventTime":1748120829908,"eventName":"SDK_API_CALLED"} I/PpeInternal_PPE(29679): syncing config I/APIHelperV2_PPE(29679): starting sync sdk config api call I/ConfigApi_PPE(29679): sdk config sync is required I/EventIng_PPE(29679): new event to save= {"eventData":{"request":"establishBridge","flowId":"USERID","sessionId":"79dbebc15729444e93a325b10867a47d","sdkEventCounter":5},"eventTime":1748120829910,"eventName":"APP_COMM_STARTED"} I/InitHandler_PPE(29679): not syncing events in init I/SdkToApp_PPE(29679): sending response back: {"result":false,"failureReason":"PACKAGE_SIGNATURE_MISMATCHED"} I/EventIng_PPE(29679): new event to save= {"eventData":{"result":"{\"result\":false,\"failureReason\":\"PACKAGE_SIGNATURE_MISMATCHED\"}","flowId":"USERID","sessionId":"79dbebc15729444e93a325b10867a47d","sdkEventCounter":6},"eventTime":1748120829918,"eventName":"APP_RESULT"} I/ConfigApi_PPE(29679): get sdk config failed I/EventIng_PPE(29679): new event to save= {"eventData":{"currentTimeStr":"Sun May 25 02:37:10 GMT+05:30 2025","error":"{\"message\":\"Bad Request - Api Mapping Not Found\"}","expiresAtStr":"Sun May 25 02:37:10 GMT+05:30 2025","responseCode":400,"lastUpdateTimeStr":"Sun May 25 02:37:10 GMT+05:30 2025","flowId":"USERID","sessionId":"79dbebc15729444e93a325b10867a47d","sdkEventCounter":7},"eventTime":1748120830414,"eventName":"SDK_SYNC_CONFIG_FAILED"}
错误原因
PACKAGE_SIGNATURE_MISMATCHED错误是因为当前运行的应用签名哈希值,和PhonePe商家后台配置的签名不匹配。PhonePe SDK会验证签名来确保调用来源合法,不匹配就会拒绝初始化。
解决步骤:匹配应用包签名
1. 获取应用签名哈希值
针对Android平台,常用两种方法:
方法一:使用keytool命令
调试环境(debug包)直接在终端执行:keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64输入密钥库密码(默认
android)即可得到哈希值。正式环境替换对应的keystore路径和alias即可。方法二:通过代码获取
可以引入package_info_plus包,或者编写原生Android代码读取应用签名信息,再做SHA1和Base64编码得到哈希值。
2. 在PhonePe后台配置签名
登录PhonePe商家后台(SANDBOX对应测试后台),找到应用配置页面,把获取到的签名哈希值添加到允许列表中。注意要和当前使用的环境(SANDBOX/生产)对应,同时确保merchantId和初始化SDK时传入的一致。
3. 重新测试
配置完成后,重新打包运行应用,再次初始化PhonePe SDK即可。
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

