Android开发Android开发经验谈Android技术知识

支付宝支付步骤(维度科技)

2020-04-19  本文已影响0人  i小灰

以维度科技为标准:

第一步:

获取jar包,如果有的话就不用下载,没有的话可以从以下地址下载:

https://docs.open.alipay.com/54/104509/

1.png
大家可以选择最新的,当然了也可以使用之前的,如上图下载就好

第二步:把jar包放入你需要支付的module中的libs下

https://docs.open.alipay.com/59/103681/

第三步:对应的module下的清单文件注册以下Activity

<activity
            android:name="com.alipay.sdk.app.H5PayActivity"
            android:configChanges="orientation|keyboardHidden|navigation"
            android:exported="false"
            android:screenOrientation="behind" >
</activity>
<activity
            android:name="com.alipay.sdk.auth.AuthActivity"
            android:configChanges="orientation|keyboardHidden|navigation"
            android:exported="false"
            android:screenOrientation="behind" >
 </activity>

第四步:加入权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

第五步:加入混淆


-libraryjars libs/alipaySDK-20150602.jar//这里记得要改

-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}

下面是维度科技支付流程,包含获取

1、查询所有会员商品,就是周卡,月卡那个接口,展示出来:


2.png

2、点击某个会员商品后,获取commodityId,然后在生成一个参数sign

sign具体如何生成,请查看必读:


3.png
4.png

3、请求用户购买接口后会返回一个orderId,拿着orderId去请求支付接口


5.png

一定要看清楚参数:


6.png

如果是支付宝支付,接口返回的参数,很长你不用问,也不用封装javaBean,直接发起支付宝支付:

可以看下面链接

https://docs.open.alipay.com/59/103685/

也可以直接复制下面代码:

//data就是你发起支付后给你返回的那一大段信息

private void pay(String data) {
        final String orderInfo = data;   // 订单信息
        Runnable payRunnable = new Runnable() {
            @Override
            public void run() {
                PayTask alipay = new PayTask(TestActivity.this);
                String result = alipay.pay(orderInfo,true);
                Message msg = new Message();
                msg.what = 1000;
                msg.obj = result;
                mHandler.sendMessage(msg);
            }
        };
        // 必须异步调用
        Thread payThread = new Thread(payRunnable);
        payThread.start();


    }

    private Handler mHandler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==1000){
                String result= (String) msg.obj;//支付后返回的信息
                Logger.i("TestActivity", result);
            }
        }
    };
上一篇 下一篇

猜你喜欢

热点阅读