لطفا از کتابخانه جدید همراه پی در لینک زیر استفاده نمایید کتابخانه جدید
HamrahPay Android Studio AAR Library
به آپارات همراه پی مراجعه فرمایید
کافیست کد زیر را در اکتیویتی یا سرویس مورد نظرتان اضافه کنید:
بعنوان مثال در رویداد کلیک دکمه پرداخت
فقط با اضافه کردن این دستورات، میتوانید برنامه خود را اجرا کنید
String yourSKU = "hp_5415e384f37bf802917441"; // شناسه کالای شما در سایت همراه پی
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); // غیر فعال کردن دکمه خرید اگر پرداخت انجام شده باشد
}
دو نوع پرداخت در همراه پی پشتیبانی میگردد:
-
پرداخت به ازای هر دستگاه :با این نوع پرداخت هر فردی که نرم افزار را خریداری میکند فقط بر روی همان دستگاهی که خریداری کرده است میتواند از نرم افزار استفاده نماید و پرداخت برای همان دستگاه قابل شناسایی میباشد.
-
پرداخت به ازای ایمیل : در این نوع پرداخت مکانیزمی طراحی شده است که هر فردی که نرم افزار را خریداری میکند بتواند بر روی گوشی دیگری هم نصب کنم . به طور مثال با یک بار نرم افزار شما را روی گوشی و تبلت خود نصب نماید. این روش توسط گوگل پلی و دیگر مارکت ها استفاده میگردد.
برای اینکار به کد ساده کد زیر را اضافه کنید:
.verificationType(HamrahPay.DEVICE_VERIFICATION) // حالت اول
.verificationType(HamrahPay.EMAIL_VERIFICATION) // حالت دوم
.setCustomDeviceID(String deviceID) // در پارامتر آن کد دلخواه خود را وارد نمایید.
// context : Context
// sku : شناسه محصول
HamrahPay.isPremium(Context context,String sku);
HamrahPay hamrahPay = new HamrahPay(MainActivity.this);
// sku : شناسه محصول مصرف کردنی
// value : یک مقدار عددی صحیح . مثلا عدد 100
String sku="hp_xxxxxxxxxx";شناسه محصول شما در همراه پی
Integer value=100;
hamrahPay.addScore(sku,value,this); // اضافه کردن امتیاز / سکه / بنزین و غیره
hamrahPay.minusScore(sku,value,this); // کسر کردن امتیاز / سکه / بنزین و غیره
hamrahPay.getScore(sku,this); // دریافت میزان امتیاز / سکه / بنزین و غیره باقیمانده
این متد زمانی کارایی دارد که محصولات شما نیازمند اشتراک زمانی هستند و با دادن مشخصات کالا اطلاعات آخرین پرداخت مشتری را برمیگرداند که شامل تاریخ آخرین خرید ، تاریخ روز ، شماره رسید پرداخت و غیره میباشد
final HamrahPay hamrahPay = new HamrahPay(MainActivity.this).sku(sku);
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
lastPurchase = hamrahPay.getLastPurchase();
Toast.makeText(MainActivity.this,lastPurchase.toString(),Toast.LENGTH_LONG).show();
}
}
};
hamrahPay.LastPurchaseRequest(sku,MainActivity.this,handler);
این متد زمانی مفید است که کد دستگاه کاربر تغییر کرده است و شما نیازمند کد دستگاه کاربر برای ویرایش تراکنش آن میباشید این متد کد دستگاه را به کاربر نمایش میدهد
String Device_ID = HamrahPay.showDeviceID(MainActivity.this);
در هنگام رویداد خطا میتوانید آنرا بصورت دستی کنترل کنید
.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) {
}
})
# Retrofit
-dontwarn retrofit2.**
-dontwarn org.codehaus.mojo.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-dontwarn okio.**
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault
-dontnote retrofit2.Platform
-dontwarn retrofit2.Platform$Java8
-keepattributes Signature
-keepattributes Exceptions
-keepattributes *Annotation*
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations
-keepattributes RuntimeInvisibleParameterAnnotations
-keepattributes EnclosingMethod
-keepclasseswithmembers class * {
@retrofit2.* <methods>;
}
-keepclasseswithmembers interface * {
@retrofit2.* <methods>;
}
لینک سایت همراه پی:
هرگونه سوالی در مورد کتابخانه دارید در قسمت مشکلات بپرسید.
یک مثال بصورت یک برنامه اندرویدی نوشته شده است 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.