Как позвонить в PayTM Android SDK через Xamarin? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь интегрировать 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);

, как показано на рисунке ниже

screenshot of the error

У меня вопрос два Свернуть

  1. Я правильно делаю интеграцию?
  2. Не могли бы вы помочь мне с тем, что мне здесь не хватает?

1 Ответ

1 голос
/ 29 апреля 2020

Перенос проекта на AndroidX. Если вы используете последнюю версию Visual Studio и Xamarin.Forms> 4.5.X, то это делается внутренне. Помимо установки AndroidX nugets.

https://devblogs.microsoft.com/xamarin/androidx-for-xamarin/

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/android/androidx-migration

...