Android paytm 集成 - 无法显示支付页面
Android paytm integration - Unable to show Payment Page
我正在尝试将 paytm 支付集成到我的 android 应用程序中。交易初始化和 CHECKSUM 验证,而且我能够获得交易令牌,但我无法在我的手机上获得 paytm UI。
下面提到的是我得到的日志。我在日志中没有看到任何错误消息。
I/Timeline: Timeline: Activity_launch_request time:611492681 intent:Intent {
cmp=com.hago.lucky.seven/com.paytm.pgsdk.PaytmPGActivity (has extras) }
W/ActivityThread: handleWindowVisibility: no activity for token
android.os.BinderProxy@f9c15c4
I/WebViewFactory: Loading com.google.android.webview version 81.0.4044.138 (code 404413803)
I/cr_LibraryLoader: Loaded native library version number "81.0.4044.138"
W/ago.lucky.seve: Accessing hidden method Landroid/content/Context;- >bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handl er;Landroid/os/UserHandle;)Z (light greylist, reflection)
D/EgretLoader: EgretLoader(Context context)
D/EgretLoader: The context is not activity
W/ContentCatcher: Failed to notify a WebView
I/ago.lucky.seve: ProcessProfilingInfo new_methods=0 is saved saved_to_disk=0 resolve_classes_delay=8000
D/ViewRootImpl[PaytmPGActivity]: changeCanvasOpacity: opaque=false
D/ViewRootImpl[PaytmPGActivity]: changeCanvasOpacity: opaque=true
W/ContentCatcher: Failed to notify a WebView
我在build.gradle中添加了implementation 'com.paytm:pgplussdk:1.4.4'
我在我的应用级别 build.gradle 中添加了 maven {
url "https://artifactory.paytm.in/libs-release-local"
}
。
我的代码会出现什么错误?提前致谢。
我已经与 Paytm 支持者分享了我实现的逻辑。
发现问题是,我有从 Play 商店下载的 Paytm 应用程序并正在尝试暂存集成。一旦我卸载了 Paytm 应用程序,它就成功运行了。
我从 Paytm 支持那里得到了这些信息
我会建议您迁移到新的 Paytm 一体化 SDK。它很容易集成。即使客户没有在他的 phone 上安装 paytm 应用程序,它也可以工作。 Paytm 正式迁移到 All-in-one SDK。在项目级别 gradle.
使用以下依赖项
maven {
url "https://artifactory.paytm.in/libs-release-local"
}
在模块级别使用gradle
// implementation ‘com.paytm.appinvokesdk:appinvokesdk:1.2’
您需要从您的服务器生成交易令牌。它与我们之前用于 paytm 的校验和相同,但代码不同。因此,请仅使用新的生成交易令牌 php 代码。
获得令牌后,启动 paytm 支付交易管理器。
public void startPaytmPayment (String token){
txnTokenString = token;
// for test mode use it
// String host = "https://securegw-stage.paytm.in/";
// for production mode use it
String host = "https://securegw.paytm.in/";
String orderDetails = "MID: " + midString + ", OrderId: " + orderIdString + ", TxnToken: " + txnTokenString
+ ", Amount: " + txnAmountString;
//Log.e(TAG, "order details "+ orderDetails);
String callBackUrl = host + "theia/paytmCallback?ORDER_ID="+orderIdString;
Log.e(TAG, " callback URL "+callBackUrl);
PaytmOrder paytmOrder = new PaytmOrder(orderIdString, midString, txnTokenString, txnAmountString, callBackUrl);
TransactionManager transactionManager = new TransactionManager(paytmOrder, new PaytmPaymentTransactionCallback(){
@Override
public void onTransactionResponse(Bundle bundle) {
Log.e(TAG, "Response (onTransactionResponse) : "+bundle.toString());
}
@Override
public void networkNotAvailable() {
Log.e(TAG, "network not available ");
}
@Override
public void onErrorProceed(String s) {
Log.e(TAG, " onErrorProcess "+s.toString());
}
@Override
public void clientAuthenticationFailed(String s) {
Log.e(TAG, "Clientauth "+s);
}
@Override
public void someUIErrorOccurred(String s) {
Log.e(TAG, " UI error "+s);
}
@Override
public void onErrorLoadingWebPage(int i, String s, String s1) {
Log.e(TAG, " error loading web "+s+"--"+s1);
}
@Override
public void onBackPressedCancelTransaction() {
Log.e(TAG, "backPress ");
}
@Override
public void onTransactionCancel(String s, Bundle bundle) {
Log.e(TAG, " transaction cancel "+s);
}
});
transactionManager.setShowPaymentUrl(host + "theia/api/v1/showPaymentPage");
transactionManager.startTransaction(this, ActivityRequestCode);
}
我正在尝试将 paytm 支付集成到我的 android 应用程序中。交易初始化和 CHECKSUM 验证,而且我能够获得交易令牌,但我无法在我的手机上获得 paytm UI。
下面提到的是我得到的日志。我在日志中没有看到任何错误消息。
I/Timeline: Timeline: Activity_launch_request time:611492681 intent:Intent {
cmp=com.hago.lucky.seven/com.paytm.pgsdk.PaytmPGActivity (has extras) }
W/ActivityThread: handleWindowVisibility: no activity for token
android.os.BinderProxy@f9c15c4
I/WebViewFactory: Loading com.google.android.webview version 81.0.4044.138 (code 404413803)
I/cr_LibraryLoader: Loaded native library version number "81.0.4044.138"
W/ago.lucky.seve: Accessing hidden method Landroid/content/Context;- >bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handl er;Landroid/os/UserHandle;)Z (light greylist, reflection)
D/EgretLoader: EgretLoader(Context context)
D/EgretLoader: The context is not activity
W/ContentCatcher: Failed to notify a WebView
I/ago.lucky.seve: ProcessProfilingInfo new_methods=0 is saved saved_to_disk=0 resolve_classes_delay=8000
D/ViewRootImpl[PaytmPGActivity]: changeCanvasOpacity: opaque=false
D/ViewRootImpl[PaytmPGActivity]: changeCanvasOpacity: opaque=true
W/ContentCatcher: Failed to notify a WebView
我在build.gradle中添加了implementation 'com.paytm:pgplussdk:1.4.4'
我在我的应用级别 build.gradle 中添加了 maven {
url "https://artifactory.paytm.in/libs-release-local"
}
。
我的代码会出现什么错误?提前致谢。
我已经与 Paytm 支持者分享了我实现的逻辑。
发现问题是,我有从 Play 商店下载的 Paytm 应用程序并正在尝试暂存集成。一旦我卸载了 Paytm 应用程序,它就成功运行了。
我从 Paytm 支持那里得到了这些信息
我会建议您迁移到新的 Paytm 一体化 SDK。它很容易集成。即使客户没有在他的 phone 上安装 paytm 应用程序,它也可以工作。 Paytm 正式迁移到 All-in-one SDK。在项目级别 gradle.
使用以下依赖项 maven {
url "https://artifactory.paytm.in/libs-release-local"
}
在模块级别使用gradle
// implementation ‘com.paytm.appinvokesdk:appinvokesdk:1.2’
您需要从您的服务器生成交易令牌。它与我们之前用于 paytm 的校验和相同,但代码不同。因此,请仅使用新的生成交易令牌 php 代码。 获得令牌后,启动 paytm 支付交易管理器。
public void startPaytmPayment (String token){
txnTokenString = token;
// for test mode use it
// String host = "https://securegw-stage.paytm.in/";
// for production mode use it
String host = "https://securegw.paytm.in/";
String orderDetails = "MID: " + midString + ", OrderId: " + orderIdString + ", TxnToken: " + txnTokenString
+ ", Amount: " + txnAmountString;
//Log.e(TAG, "order details "+ orderDetails);
String callBackUrl = host + "theia/paytmCallback?ORDER_ID="+orderIdString;
Log.e(TAG, " callback URL "+callBackUrl);
PaytmOrder paytmOrder = new PaytmOrder(orderIdString, midString, txnTokenString, txnAmountString, callBackUrl);
TransactionManager transactionManager = new TransactionManager(paytmOrder, new PaytmPaymentTransactionCallback(){
@Override
public void onTransactionResponse(Bundle bundle) {
Log.e(TAG, "Response (onTransactionResponse) : "+bundle.toString());
}
@Override
public void networkNotAvailable() {
Log.e(TAG, "network not available ");
}
@Override
public void onErrorProceed(String s) {
Log.e(TAG, " onErrorProcess "+s.toString());
}
@Override
public void clientAuthenticationFailed(String s) {
Log.e(TAG, "Clientauth "+s);
}
@Override
public void someUIErrorOccurred(String s) {
Log.e(TAG, " UI error "+s);
}
@Override
public void onErrorLoadingWebPage(int i, String s, String s1) {
Log.e(TAG, " error loading web "+s+"--"+s1);
}
@Override
public void onBackPressedCancelTransaction() {
Log.e(TAG, "backPress ");
}
@Override
public void onTransactionCancel(String s, Bundle bundle) {
Log.e(TAG, " transaction cancel "+s);
}
});
transactionManager.setShowPaymentUrl(host + "theia/api/v1/showPaymentPage");
transactionManager.startTransaction(this, ActivityRequestCode);
}