之前做电商类APP的时候经常要集成支付宝功能,在网上也有一些关于支付宝集成的文章,但都不够 详细,新手弄起来还是会有点 小麻烦。今天,给大家分享一下如何给你的APP快速集成支付宝 功能。

首先,你得去支付宝开发平台 下一个支付宝支付功能的sdk,怎么下载就不说了 ,目测地球人都会的。下载好导入到你的项目工程中,注意:这里用的是Android studio 。

下载好解压一下,把里面libs的文件放在你项目中的libs文件夹。

Android 支付6001 Android 支付宝_Android 支付6001

然后,把解压后的res资源文件,就是 一些图片文件复制到你的res目录下,这个很 简单就不多说了,这些图片就是原始的支付界面需要的一些图片,就几张而已。放完之后,把解压缩后 的下面那个文件夹,放在你 项目的java目录下,

Android 支付6001 Android 支付宝_支付宝_02

添加完后,记得加权限:

<span style="font-size:18px;"> <activity
            android:name="com.alipay.sdk.pay.demo.H5PayDemoActivity"
            android:configChanges="orientation|keyboardHidden|navigation"
            android:exported="false"
            android:screenOrientation="behind" >
        </activity>
        <!-- alipay sdk begin -->
        <activity
            android:name="com.alipay.sdk.app.H5PayActivity"
            android:configChanges="orientation|keyboardHidden|navigation|screenSize"
            android:exported="false"
            android:screenOrientation="behind"
            android:windowSoftInputMode="adjustResize|stateHidden" >
        </activity></span>


好了,到这里前期的集成工作基本ok!

        接下来,我们来为自己的APP定制支付 界面 。默认的支付界面肯定是不能用的。我们 来 打开sdk官方的demo,就几个类,不多,多看几遍就懂了。

我们 需要 修改的主要是第2个、第3个、第3个文件,其中,ExternalFragment这个fragment就是我们的支付界面,默认是 静态注册的(好恶心),为了便于传值,我它改成了动态注册,H5PayDemoActivity这个ativity主要是 当你手机里没有 装支付宝 的时候,就会 用到它进行网页支付宝支付宝,主要 的支付代码 不用说,肯定就在PayDemoActivity里了!


接下来,开始贴代码了!

(1)在你自己的Activity的跳转事件里携带你的商品信息(价格之类的),跳转到PayDemoActivity中,附上代码

case R.id.buy:
   Intent intent_buy=new Intent(XianShiActivity.this, PayDemoActivity.class);
    Log.d("xyc", "onClick: "+name);
    intent_buy.putExtra("product_subject",title);
    intent_buy.putExtra("product_introduce",name);
    intent_buy.putExtra("product_price",activity_prices);
    startActivity(intent_buy);
    break;



(2)然后在PayDemoActivity中接收传过来的值,

Intent intent = getIntent();
product_subject = intent.getStringExtra("product_subject");
product_introduce = intent.getStringExtra("product_introduce");
product_price = intent.getStringExtra("product_price");

这里说 一下,这个Activity里有些参数是需要填的。这些数据如果是个人开发者,是得不到的,因为目前只有企业才能申请到,如果需要测试数据,可以问别人弄些。


(3)刚才说了,为了便于传值,我已经把fragment的静态注册改了,然后在PayDemoActivity里动态注册。

<span style="font-size:18px;"> FragmentTransaction transaction = manager.beginTransaction();
        ExternalFragment externalFragment=new ExternalFragment();
        Bundle bundle=new Bundle();
        bundle.putString("product_subject", product_subject);
        bundle.putString("product_introduce", product_introduce);
        bundle.putString("product_price",product_price);
        externalFragment.setArguments(bundle);
        transaction.replace(R.id.ll_fragment,externalFragment);
        transaction.commit();</span>

(4)最后在ExternalFragment里接收数据,根据自定义的界面设置相关商品数据。

private void setDatas() {
    Bundle arguments = getArguments();
    String product_subject = arguments.getString("product_subject");
    String product_introduce = arguments.getString("product_introduce");
    String activity_prices = arguments.getString("product_price");
    product_subject_tv.setText(product_subject);
    product_introduce_tv.setText(product_introduce);
    activity_prices_tv.setText("¥"+activity_prices);

(5)还有一点需要 说的是,在PayDemoActivity里不要忘了把你 从自己Activity传过来的值,设置在下面哪行代码里,要不然,支付宝 可能不知道你需要支付多少钱,生成订单的时候,得不到订单信息。


  Ok,,基本完成,欢迎亲测,不行就留言私聊我吧。