ورود

View Full Version : آموزش: استفاده از درگاه پرداخت پی لاین در برنامه نویسی اندروید



dalmif
شنبه 26 اردیبهشت 1394, 11:05 صبح
بسم الله الرحمن الرحیم.
بنده تصمیم داشتم که اگه بتونم این کار رو در برنامه خودم پیاده سازی کنم به دوستان هم آموزش بدم.
شاید آموزش بسیار ساده و حتی شایدم اشتباه باشه.
اگه اساتید مشکلی دیدند حتما گزارش بدن که دوستان دچار مشکل نشن.
خب اگه توی سایت پی لاین عضو نیستید عضو شوید و درگاه پرداختی رو بگیرید حالا اسکریپتی رو که خود پی لاین ارائه می ده رو در هاستتون نصب کنید.
API که واسه فروشگاه بهتون میده رو یادداشت کنید و در اسکریپت همون طوری که در خود پی لاین آموزش داده شده بزارید.
خب حالا کار ما شروع شد.
سمت اندروید:
آدرس قسمتی از هاستتون رو که توش اسکریپت رو رختید کپی کنید.
صفحه xml روبسازید و توش یه وب ویو بزارید.
در فایل جاوا کد زیر رو بزارید.


WebView web = (WebView) findViewById(R.id.webView1);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setFixedFontFamily("Tahoma");
//web.getSettings().setTextSize(t)
web.getSettings().setBuiltInZoomControls(true);
//web.getSettings().setSansSerifFontFamily("Tahoma") ;
web.loadUrl("Address");

حالا امتحان کنید.
وقتی بر روی پرداخت کلیک می کنید می خواد گوگل کروم یا مرورگر دیگه ای رو باز کنه حالا کلاس زیر رو به کلاستون اضافه کنید.


private class Callback extends WebViewClient {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
if(url.endsWith("mpg") || url.endsWith("avi"))
{
/* view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));*/
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIE W);
intent.setDataAndType(Uri.parse(url), "video/*");
startActivity(intent);
return true;

}

else {
return (false);
}


}
}



کد زیر رو هم به کد بالا یعنی webView اضافه کنید.


web.setWebViewClient(new Callback());

یه توضیح کوچیک بدم درگاهی که متصل میشید یه ارور ssl داره بخاطر همین وقتی باز میکنید درگاه رو مینویسه در حال اتصال و بعد یه صفحه وب ویو نشون میده که آدرس شاپرک رو نوشته انگار که اینترنت قطع شده اما نه چون این صفحه ارور SSL داره نمیشه وصل شه و اینجا متوقف میشه.
اینجا مهمه:
به کلاسی که در بالا به نام CallBack بود کد زیر رو هم اضافه کنید.


@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed(); // Ignore SSL certificate errors
}

یعنی کل صفحه این شکلی میشه.




public class PayActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.pay);





WebView web = (WebView) findViewById(R.id.webView1);
web.getSettings().setJavaScriptEnabled(true);
web.setWebViewClient(new Callback());
web.getSettings().setFixedFontFamily("Tahoma");
//web.getSettings().setTextSize(t)
web.getSettings().setBuiltInZoomControls(true);
//web.getSettings().setSansSerifFontFamily("Tahoma") ;
web.loadUrl("Address");
// برای نمونه می تونید از آدرس http://yekmarket.ir/pay/?value=10000 استفاده کنید اون 1000 تومن رو هم اگه تغییر بدید مقدار پولتون تغییر میکنه.
}


private class Callback extends WebViewClient {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed(); // Ignore SSL certificate errors
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
if(url.endsWith("mpg") || url.endsWith("avi"))
{
/* view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));*/
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIE W);
intent.setDataAndType(Uri.parse(url), "video/*");
startActivity(intent);
return true;

}

else {
return (false);
}


}
}


}

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