Я пытаюсь интегрировать PayTM в приложение Xamarin, используя пример для android, указанный в этой ссылке. Я загрузил appinvokesdk-1.2.aar из репозитория PayTM maven и сгенерировал необходимые собственные привязки с помощью библиотеки привязок Xamarin Android. Я создал интерфейс под названием IPayTMService, который присутствует в моем общем проекте Xamarin.Forms. Код выглядит следующим образом:
public interface IPayTMService
{
void MakePayment(string orderId,string txnToken, string amount);
string Message { get; set; }
}
И код реализован в проекте Xamarin. Android как
public class AndroidPayTMService : IPayTMService
{
private Activity _activity;
public AndroidPayTMService(Activity activity)
{
_activity = activity;
}
public string Message { get; set; }
public void MakePayment(string orderId, string txnToken, string amount)
{
var mid = "<my mid>";
var callbackurl = $"https://securegw-stage.paytm.in/theia/paytmCallback?ORDER_ID={orderId}";
var paytmOrder = new PaytmOrder(orderId, mid, txnToken, amount, callbackurl);
var txnManager = new TransactionManager(paytmOrder, new PaytmPaymentTransactionCallback(this));
txnManager.StartTransaction(_activity, 2);
}
}
В моем файле MainActivity.cs в приложении Xamarin. Android , Я написал следующий код для запуска службы paytm
var app = new App();
app.PayTMService = new AndroidPayTMService(this);
LoadApplication(app);
И из своего общего кода Xamarin.Forms я вызываю службу следующим образом
async void PayTM_Clicked(object sender, EventArgs e)
{
var orderId = Guid.NewGuid().ToString();
var custId = Guid.NewGuid().ToString();
var token = await payTM.GetToken(orderId, custId, amount.Text);
var app = (App)Application.Current;
app.PayTMService.MakePayment(orderId, token, amount.Text);
}
Когда я запускаю это приложение Я получаю сообщение об ошибке в этой строке моего androidpaytmservice
txnManager.StartTransaction(_activity, 2);
, как показано на рисунке ниже
У меня вопрос два Свернуть
- Я правильно делаю интеграцию?
- Не могли бы вы помочь мне с тем, что мне здесь не хватает?