Giter Site home page Giter Site logo

hamrahpay's Introduction

کتابخانه پرداخت درون برنامه ای همراه پی

Release GitHub license

کتابخانه مخصوص اندروید استودیو


تغییرات

برای مشاهده تغییرات لینک زیر را باز کنید.
لیست تغییرات


نحوه اضافه کردن کتابخانه

برای استفاده از این کتابخانه، ابتدا کدهای این بخش را در فایل زیر بنویسید:
build.gradle
نکته: دقت کنید که دو فایل از فایل بالایی در پروژه موجود هست و شما باید کدها را در فایل موجود در زیرشاخه ی برنامه بنویسید

repositories {
	...
	maven { url "https://jitpack.io" }
}

dependencies {
	...
	compile 'com.github.TurKurT656:Hamrahpay:1.2.0'
}

نحوه استفاده از کتابخانه

کافیست کد زیر را در اکتیویتی یا سرویس مورد نظرتان اضافه کنید:
بعنوان مثال در رویداد کلیک دکمه پرداخت

کد ساده

فقط با اضافه کردن این دستورات، میتوانید برنامه خود را اجرا کنید

String yourSKU = "hp_56b24ebcdf274339534223";   // شناسه کالای شما در سایت همراه پی
new HamrahPay(MainActivity.this)                // اکتیویتی که می خواهید از آنجا پرداخت انجام شود  
	.sku(yourSKU)                               // اضافه کردن شناسه به صفحه پرداخت
	.listener(new HamrahPay.Listener() {        // لیسنر برای آگاهی شما از موفق بودن یا نبودن پرداخت
	  @Override
	  public void onErrorOccurred(String status, String message) {
	      // مشکلی در پرداخت روی داده است یا کاربر پرداخت را انجام نداده است
	      Toast.makeText(MainActivity.this,message,Toast.LENGTH_SHORT).show();
	      Log.e("HamrahPay", status + ": " + message);
	  }
	
	  @Override
	  public void onPaymentSucceed(String payCode) {
	      // کاربر با موفقیت پرداخت را انجام داده است
	      Log.i("HamrahPay", "payCode: " + payCode);
	  }
	})
	.startPayment();    // با اضافه کردن این دستور عملیات پرداخت آغاز خواهد شد

ذخیره خرید و چک کردن آن

با استفاده از کد زیر میتوان چک کرد که آیا کاربر محصول مورد نظر را خریداری کرده است یا خیر:

if (HamrahPay.isPremium(MainActivity.this,yourSKU)) {        // چک کردن خرید با ورودی شناسه کالا
    payButton.setEnabled(false);                             // غیر فعال کردن دکمه خرید اگر پرداخت انجام شده باشد
}

پیکربندی نوع پرداخت

دو نوع پرداخت در همراه پی پشتیبانی میگردد:

  1. پرداخت به ازای هر دستگاه :‌با این نوع پرداخت هر فردی که نرم افزار را خریداری میکند فقط بر روی همان دستگاهی که خریداری کرده است میتواند از نرم افزار استفاده نماید و پرداخت برای همان دستگاه قابل شناسایی میباشد.

  2. پرداخت به ازای ایمیل :‌ در این نوع پرداخت مکانیزمی طراحی شده است که هر فردی که نرم افزار را خریداری میکند بتواند بر روی گوشی دیگری هم نصب کنم . به طور مثال با یک بار نرم افزار شما را روی گوشی و تبلت خود نصب نماید. این روش توسط گوگل پلی و دیگر مارکت ها استفاده میگردد.

برای اینکار به کد ساده کد زیر را اضافه کنید:

.verificationType(HamrahPay.DEVICE_VERIFICATION)    // حالت اول
.verificationType(HamrahPay.EMAIL_VERIFICATION)     // حالت دوم - حالت پیشفرض

تغییر رنگ نوار بالای صفحه پرداخت

.pageTopColor(Color.parseColor("#F44336"))      // رنگ نوار
.pageTitleColor(Color.WHITE)        		// رنگ متن روی نوار

کنترل خطا

در هنگام رویداد خطا میتوانید آنرا بصورت دستی کنترل کنید

.listener(new HamrahPay.Listener() {
    @Override
    public void onErrorOccurred(String status, String message) {
        switch (status) {
            case HamrahPay.STATUS_BAD_PARAMETERS:
                break;
            case HamrahPay.STATUS_INVALID_TRANSACTION:
                break;
            case HamrahPay.STATUS_NO_NETWORK_OR_SERVER:
                break;
            case HamrahPay.STATUS_SELLER_BLOCKED:
                break;
            case HamrahPay.STATUS_TRY_AGAIN:
                break;
        }
        Log.e("HamrahPay", status + ": " + message);
    }

    @Override
    public void onPaymentSucceed(String payCode) {
    
    }
})

کتابخانه Volley

اگر در برنامه خودتان از این کتابخانه استفاده می کنید، کافیست آنرا بصورت زیر به این کتابخانه اضافه کنید، در صورت اضافه نکردن برنامه بصورت پیش فرض برای خود صف جدیدی اضافه خواهد کرد

RequestQueue myQueue = Volley.newRequestQueue(MainActivity.this)
new HamrahPay(MainActivity.this)
	...
	.requestQueue(myQueue)
	...
	.startPayment();

پشتیبانی

لینک سایت همراه پی:

هرگونه سوالی در مورد کتابخانه دارید در قسمت مشکلات بپرسید.
یک مثال بصورت یک برنامه اندرویدی نوشته شده است app همچنین در داخل فولدر

لینک صفحه مشکلات

لایسنس

Copyright 2013 Square, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

hamrahpay's People

Contributors

turkurt656 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

hamrahpay's Issues

مشکل با اندروید 6

سلام دوست عزیز

هنگام پرداخت در گوشی های با اندروید 6 , خطای زیر پیش میاد

06-29 01:26:04.045 29841-30197/ir.bizcatalog.biz E/Volley: [505] NetworkDispatcher.run: Unhandled exception java.lang.SecurityException: getDeviceId: Neither user 10059 nor current process has android.permission.READ_PHONE_STATE. java.lang.SecurityException: getDeviceId: Neither user 10059 nor current process has android.permission.READ_PHONE_STATE. at android.os.Parcel.readException(Parcel.java:1599) at android.os.Parcel.readException(Parcel.java:1552) at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:4175) at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:706) at ir.devage.hamrahpay.HamrahPay.getDeviceID(HamrahPay.java:372) at ir.devage.hamrahpay.HamrahPay.access$800(HamrahPay.java:59) at ir.devage.hamrahpay.HamrahPay$3.getParams(HamrahPay.java:285) at com.android.volley.Request.getBody(Request.java:468) at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:253) at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:227) at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:107) at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:97) at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)

ممنون میشم راهنمایی بفرمایید.

پروگارد

سلام
متاسفانه همراه پی با پروگارد مشکل داره ، آیا کسی تونسته تا بحال حلش بکنه ؟

مهاجرت به Androidx

با سلام برام خیلی عجیبه بعد از تفریبا 4 سال از معرفی شدن اندرود ایکس هنوز برنامه داره از اپ کامپکت استفاده میکنه !!! ینی این قد سخته که فایل هاتون را با خود امکانات اندروید استودیو که migrate to androidx داره ارتقا بدین الان که گریدل 7 اومده به هیچ عنوان برنامه و اپ نمیتونه بیلد بشه

# Toolbar toolbar = (Toolbar)this.findViewById(id.tlbr_acPay);

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(layout.activity_pay);
# Toolbar toolbar = (Toolbar)this.findViewById(id.tlbr_acPay);
toolbar.setBackgroundColor(hamrahPay.getPageTopColor());
toolbar.setTitleTextColor(hamrahPay.getPageTitleColor());
this.setSupportActionBar(toolbar);
if(this.getSupportActionBar() != null) {
this.getSupportActionBar().setTitle(string.pay);
this.getSupportActionBar().setHomeButtonEnabled(true);
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

توی کلاس همراه نمیتونه تولبار رو جنریت کنه و این خطا رو میده
java.lang.NoSuchFieldError: No static field tlbr_acPay of type I in class Lir/devage/hamrahpay/R$id;

کد برای انتقال به یک صفحه

چه کدی داخل صفحه ای که توش میخوایم پرداخت انجام بشه بنویسیم که وقتی پرداخت با موفقیت انجام شد به یه اکتیویتی دیگه ای منتقل بشه؟

مشکل با ایمیل

سلام و خسته نباشید.
بنده از ای پی آی شما استفاده کردم و خیلی راضی هستم.
یوزر موقع خرید ایمیل ثبت میکنه.اگه ایمیل الکی ثبت کنه به چه صورت هست؟
ممنون میشم توضیح بفرمایید

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.