2016-11-04 2 views
0

ケニアでは、アフリカをはじめ世界中の国々にも広がっています。携帯電話による送金と送金の素晴らしい方法があります。 SafaricomとAirtelの2つの大手サービスプロバイダは、それぞれMpesaとAirtelMoneyというモバイルマネープラットフォームを持っています。MpesaとAirtelMoneyのようなモバイルマネーとAndroidアプリの融合

ケニアではGoogle Merchantサービスが利用できないため、それらを使用すると潜在的な消費者を魅了することになるため、MpesaとAirtelMoneyの両方を使用してユーザーにアプリを販売することを検討しています。現在、両方のモバイルマネーサービスは、トランザクションが発生するたびに確認テキストメッセージを送信者と受信者に送信します。

私は他の技術の中でウェブプラットフォームを使用している利用可能なapisを使用することができず、私のアプリでこのサービスをどのように使用しますか?私のユーザーは教会員が使用するアプリなので、毎日インターネットを使用しているわけではありません。しかし確かに彼らは毎日携帯電話を使う。私はこれに向かって努力を感謝します。私はそれが一種のSMSでの作業表示されますので、私のアプリは、ユーザーがMペサを経由して私を支払う際に保険料に試験から変更できるようにしたい

は、Web APIを

答えて

2

に比べて簡単です私はあなたに似た問題を抱えていたし、その目的を達成するためにSMSを使用することに決めました。まず、私は私はそれを行うすることを可能にするための権限を使用するすべての:私はこのことができます願ってい

package com.example.myapp; 

import android.content.BroadcastReceiver; 
import android.content.ContentResolver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.net.Uri; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.support.v4.app.NotificationCompat; 
import android.telephony.SmsManager; 
import android.telephony.SmsMessage; 
import android.util.Log; 
import android.widget.Toast; 

@SuppressLint("ShowToast") 
public class IncomingMessage extends BroadcastReceiver 
{ 

    final SmsManager sms = SmsManager.getDefault(); 

    public void onReceive(Context paramContext, Intent paramIntent) 
    { 
     SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(paramContext.getApplicationContext()).edit(); 

     if (!PreferenceManager.getDefaultSharedPreferences(paramContext.getApplicationContext()).getBoolean("js_vsb_is_paid", false)) 
     { 

      Bundle localBundle = paramIntent.getExtras(); 
      if (localBundle != null) {} 
      for (;;) 
      { 
       int i; 
       String sender; 
       String message; 
       try { 
       Object[] arrayOfObject = (Object[])localBundle.get("pdus"); 
       i = 0; 
       if (i >= arrayOfObject.length) { 
        return; 
       } 
       SmsMessage localSmsMessage = SmsMessage.createFromPdu((byte[])arrayOfObject[i]); 
       sender = localSmsMessage.getDisplayOriginatingAddress(); 
       message = localSmsMessage.getDisplayMessageBody(); 
       Log.i("SmsReceiver", "senderNum: " + sender + "; message: " + message); 

       if (sender.equalsIgnoreCase("MPESA")) { 
        if (message.contains("JACKSON SIRO")) 
        { 
         editor.putBoolean("app_is_paid", true); 
         editor.commit(); 
         //Toast.makeText(paramContext, "App Has been Activated!", Toast.LENGTH_LONG).show(); 

        } 
       } 
        else if (sender.equalsIgnoreCase("AirtelMoney")) { 
        if (message.contains("JACKSON SIRO")) { 
         editor.putBoolean("app_is_paid", true); 
         editor.commit(); 
         //Toast.makeText(paramContext, "App Has been Activated!", Toast.LENGTH_LONG).show(); 
        } 
        } 

       } catch (Exception localException) { 
       Log.e("SmsReceiver", "Exception smsReceiver" + localException); 
       return; 
       } 

    } 
    } 
    } 

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.READ_SMS" /> 
<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <receiver 
      android:name="com.example.myapp.IncomingMessage" 
      android:enabled="true" 
      android:exported="true" 
      android:permission="android.permission.BROADCAST_SMS" > 
      <intent-filter android:priority="2147483647" > 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </receiver> 

と私のIncomingMessage活動の私は、次のコードを追加しました。コードはシンプルなので、あなたのニーズに合わせて修正することがあります

+0

なぜ誰かが私の答えをdownvoteだろう –

+0

それはまったく良くありません –

0

SafaricomはM-Pesa APIをdeveloper portalでアクセス可能なRESTful APIとしてリリースしました。

Safaricom github repositoryは、で、"Lipa na M-Pesa Online" APIを使用しています。このAPIは、アプリのユーザーに代わってM-Pesaトランザクションを開始します。ユーザーは、トランザクションを完了するためにM-Pesa PINを入力するだけで済みます。

関連する問題