问题描述
我正在使用 xamarin android 项目添加支付网关,但出现交易失败错误。支付网关打开并运行良好,但当我提交金额时,出现交易失败错误。 我的代码是:
using System;
using System.Net.Http;
using System.Text;
using Android.App;
using Android.OS;
using Android.Runtime;
using Android.Support.V7.App;
using Android.Views;
using System.Threading.Tasks;
using Android.Widget;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Android.Content;
using System.Collections.Generic;
using Android.Content.PM;
namespace androidbindingapp
{
[Activity(Label = "@string/app_name",Theme = "@style/AppTheme.NoActionBar",MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this,savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
Button button = (Button)FindViewById(Resource.Id.button1);
button.Click += BtnOnClick;
}
private void BtnOnClick(object sender,EventArgs eventArgs)
{
// Create your application here
string amount = "1";
string transaction_ref_id = Guid.NewGuid().ToString().Substring(0,10) + "UPI";
string transaction_ref = Guid.NewGuid().ToString().Substring(0,10);
using (var uri = new Android.Net.Uri.Builder()
.Scheme("upi")
.Authority("pay")
.AppendQueryParameter("pa","33123451234@SBIN0004875.ifsc.npci")
.AppendQueryParameter("pn","vijay shankar tiwari")
.AppendQueryParameter("mc","9999")
.AppendQueryParameter("tn","pay tips by vijay")
.AppendQueryParameter("tr",transaction_ref_id)
.AppendQueryParameter("tid",transaction_ref)
.AppendQueryParameter("am",amount)
.AppendQueryParameter("cu","INR")
.Build())
{
Intent = new Intent(Intent.ActionView);
Intent.SetData(uri);
}
if (IsAppInstalledindevice("in.org.npci.upiapp"))
{
Intent.SetPackage("in.org.npci.upiapp");
StartActivityForResult(Intent,9999);
}
else
{
var packagename = PackageName;
Toast.MakeText(Android.App.Application.Context,"Bhim is not available in your
device",ToastLength.Long).Show();
}
}
private bool IsAppInstalledindevice(string PackageName)
{
PackageManager pm = this.PackageManager;
bool installed = false;
try
{
pm.GetPackageInfo(PackageName,PackageInfoFlags.Activities);
installed = true;
}
catch (PackageManager.NameNotFoundException ex)
{
installed = false;
}
return installed;
}
public override void OnRequestPermissionsResult(int requestCode,string[] permissions,[GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode,permissions,grantResults);
base.OnRequestPermissionsResult(requestCode,grantResults);
}
protected override void OnActivityResult(int requestCode,Result resultCode,Intent data)
{
base.OnActivityResult(requestCode,resultCode,data);
if (data != null)
{
TextView textView = FindViewById<TextView>(Resource.Id.textView1);
String dataString = data.GetStringExtra("txStatus");
if (dataString != null)
{
textView.SetText(dataString,Android.Widget.TextView.BufferType.normal);
}
}
}
}
}
当我运行程序时一切正常,支付网关打开,它要求付款,但当我提交金额时,它显示错误交易失败。 我已经在我的移动设备上安装了相应的支付网关。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)