طريقة حصرية لزيادة ارباحك من تطبيقاتك الاندرويد

بسم الله الرحمن الرحيم

كلنا يعرف ضعف العائد من الإعلانات في الدول العربية و ما يزيد الأمر تعقيداً أن أغلبية المستخدمين العرب لا يتوفر لديهم بطاقة الفيزا كارد أو  حساب البايبال لعرض عملية الشراء داخل تطبيقك أو شراء تطبيقك نفسه من على المتجر مباشرة, و في هذا الموضوع سنتطرق لطريقة ستزيد من دخلك من التطبيقات بنسبة كبيرة جدا إن شاء الله, و نبدأ على بركة الله.

الطريقة هي الشراء داخل التطبيق بواسطة رسائل SMS, نعم اجعل المستخدمين يدفعون بواسطة الـsms عندما لا يتوفر لديهم بطاقة للشراء عبر الانترنت هذه الطريقة قد تزيد من دخلك من التطبيقات خاصة التي تستهدف العالم العربي بنسبة كبيرة و ما هو سبب انتشار مسابقات الـsms في عالمنا العربي كمسابقة الحلم 🤔 في رأيك؛ لأن الكل يملك رصيداً في هاتفه كما أن ارسال sms سهل جدا و الجيد أن الخدمة تدعم كل الدول العربية.
يمكنك استعمال الخدمة لشراء داخل التطبيق او مثلاً فتح مميزات النسخة الكاملة او حتى لجعل المستخدم يتبرع لك, إلخ.
ولا أخفي عليكم العيب الوحيد لهذه الطريقة هي العمولة المرتفعة و لكن رغم ذلك الخدمة تبقى أفضل من الاعلانات بأشواط, ‎ ننتقل الآن إلى الطريقة.

1. ادخل على الرابط و قم بالتسجيل فالأمر بسيط و لا يحتاج شرح.

2. بعد التسجيل اختر create new service ثم Android sdk بعد ادخال المعلومات التي ستطلب منك سوف تنتقل الى هذه الصفحة :

3. تم تضغط على next و تملأ المعلومات الاضافية التي ستطلب منك ثم next بعد الانتهاء حمل المكتبة

4. أذهب الى أعلى الصفحة و أنقر على dashboard تم أختر تطبيقك و أنسخ الـ service id و in application secret .

5. ضع المكتبة في مجلد libs الذي يندرج بداخل مجلد app الخاص بمشروعك الاندرويد.

6. أضف الاكواد التالية ل AndroidManifest

 <!-- اذونات الأساسية  -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <permission android:name="com.denyago.name.PAYMENT_BROADCAST_PERMISSION"
    <!-- كي لا يقع خلط بين التطبيقات الأخرى اذا كانت تستعمل نفس المكتبة  -->
        android:label="Read payment status"
    <uses-permission android:name="com.denyago.name.PAYMENT_BROADCAST_PERMISSION" />
        android:protectionLevel="signature" />
    <!-- هذا خاص بالتطبيق و لن يتم اعلام المستخدم به -->
    <application
        android:allowBackup="true"
        <!-- هذه مهمة ل sdk التي اضفناها  -->
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name="mp.MpSMSReceiver">
        <service android:name="mp.MpService" />
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
            android:configChanges="orientation|keyboardHidden|screenSize" />
        <service android:name="mp.StatusUpdateService" />
        <activity android:name="mp.MpActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:permission="com.denyago.name.PAYMENT_BROADCAST_PERMISSION">

        <!-- تتبع عملية ارسال sms و النتيجة
should be protected by "signature" permission -->
        <receiver android:name=".PaymentStatusReceiver"
            <intent-filter>
                <action android:name="mp.info.PAYMENT_STATUS_CHANGED" />
            </intent-filter>
        </receiver>

7. لنفترض مثلا انني إريد إظهار نافدة الدفع بعد ان يضغط المستخدم على زر ” اشتري التطبيق ” الموجود في mainActivity الكود سيكون على الشكل التالي :

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.view.View;
import mp.PaymentRequest;
import android.widget.Button;
import mp.MpUtils;


public class MainActivity extends Activity implements OnClickListener {
import mp.PaymentResponse;

    private static String SERVICE_ID = "xxx";
    protected void onCreate(Bundle savedInstanceState) {
    private static String APP_SECRET = "yyy";

    @Override
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((Button)findViewById(R.id.buy_button)).setOnClickListener(this);
}
                PaymentRequest.PaymentRequestBuilder builder = new PaymentRequest.PaymentRequestBuilder();

    public void onClick(View v) {
switch(v.getId()) {
            case R.id.buy_button: {
builder.setService(SERVICE_ID, APP_SECRET);
                builder.setProductName("news"); // non-consumable purchases are restored using this value

// اسم منتوجك الذي سيظهر 
                builder.setDisplayString("News");
// الاسم الذي وضعته للخدمة 
                PaymentRequest pr = builder.build();
                builder.setConsumable(true); // non-consumable items can be later restored
builder.setIcon(R.drawable.ic_launcher);

    protected final void makePayment(PaymentRequest payment) {

makePayment(pr);

            } break;
        }
    }
    // Fortumo related glue-code
    private static final int REQUEST_CODE = 1234; // خليه زي ما هو مش مهم 
        if (requestCode == REQUEST_CODE) {
        startActivityForResult(payment.toIntent(this), REQUEST_CODE);

}

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data == null) {

                switch (response.getBillingStatus()) {

                return;
}

            if (resultCode == RESULT_OK) {
// OK
                PaymentResponse response = new PaymentResponse(data);
case MpUtils.MESSAGE_STATUS_BILLED:

                    case MpUtils.MESSAGE_STATUS_PENDING:
                        // المستخدم دفع افتح ميزات الpro مثلا 
                        break;
                        // مدفعش حاجه
                    case MpUtils.MESSAGE_STATUS_FAILED:
                        break;
                        // مدفعش حاجه
                        break;
                }
                // Cancel
} else {
            }

// ..
        } else {
            super.onActivityResult(requestCode, resultCode, data);

}
    }
}

8. يمكنك تجربة الشراء داخل تطبيقك دون تكاليف لتتحقق من عملها.

9. بعد الانتهاء من تجربة الخدمة في تطبيقك تعود الى اخر صفحة فتحناها و تضغط على golive و سيتم إطلاق الخدمة رسمياً لتطبيقك و يمكنك بعدها رفعه إلى جوجل بلاي و البدأ في صناعة ثروتك ..

إي استفسار او سؤال فقط اكتب التعليقات و انا سأجيب أن شاء الله و السلام عليكم ورحمه الله وبركاته

* هذه المقال تم مشاركتها من أصدقاء مجموعة اندرودي عربي.
الكاتب : إسماعيل الزاكي

Check Also

مواقع سورسات وأكواد مفتوحة المصدر للاندرويد

بسم الله الرحمن الرحيم الكثير من مبرمجي الاندرويد يبحثون عن خصائص أو مميزات ليضيفوها في …

شرح بسيط عن الـRecyclerView بالاندرويد

بسم الله الرحمن الرحيم الكثير منا يواجه احياناً عندما يريد أن يقوم بتنظيم مجموعة من البيانات …

هل لغتك المفضلة للبرمجة هي سر نجاح تطبيقاتك الذكية ؟

بسم الله الرحمن الرحيم منذ ظهور الاجهزة المحمولة وتطبيقات الجوال تزداد بشكلٍ كبيرٍ جداً سواءً …

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.