1. 程式人生 > >微信、支付寶App支付-JPay 簡單而不簡潔的App支付SDK

微信、支付寶App支付-JPay 簡單而不簡潔的App支付SDK

JPay

對微信App支付、支付寶App支付的二次封裝,對外提供一個相對簡單的介面以及支付結果的回撥

使用方法

1、引入

compile 'com.javen205.jpay:jpaysdk:latest.release.here'

2. Android Manifest配置

2.1許可權宣告
<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" />
2.2註冊activity

application節點新增如下類容

 <!-- 微信支付 -->
<activity android:name="com.javen205.jpay.weixin.WXPayEntryActivity" android:configChanges="orientation|keyboardHidden|navigation|screenSize" android:launchMode="singleTop" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity-alias
android:name=".wxapi.WXPayEntryActivity" android:exported="true" android:targetActivity="com.javen205.jpay.weixin.WXPayEntryActivity" />
<!-- 微信支付 end --> <!-- 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> <activity android:name="com.alipay.sdk.app.H5AuthActivity" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false" android:screenOrientation="behind" android:windowSoftInputMode="adjustResize|stateHidden" > </activity> <!-- alipay sdk end -->

3. 發起支付

3.1 微信支付
JPay.getIntance(mContext).toPay(JPay.PayMode.WXPAY, payParameters, new JPay.JPayListener() {
            @Override
            public void onPaySuccess() {
                Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show()
            }

            @Override
            public void onPayError(int error_code, String message) {
                Toast.makeText(mContext, "支付失敗>"+error_code+" "+ message, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPayCancel() {
                Toast.makeText(mContext, "取消了支付", Toast.LENGTH_SHORT).show();
            }
        });

payParameters 為JSON字串格式如下:

{
  "appId": "",
  "partnerId": "",
  "prepayId": "",
  "sign": "",
  "nonceStr" : "",
  "timeStamp": ""
}

或者

JPay.getIntance(mContext).toWxPay(appId, partnerId, prepayId, nonceStr, timeStamp, sign, new JPay.JPayListener() {
            @Override
            public void onPaySuccess() {
                Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPayError(int error_code, String message) {
                Toast.makeText(mContext, "支付失敗>"+error_code+" "+ message, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPayCancel() {
                Toast.makeText(mContext, "取消了支付", Toast.LENGTH_SHORT).show();
            }
        });
3.2 支付寶支付
JPay.getIntance(mContext).toPay(JPay.PayMode.ALIPAY, orderInfo, new JPay.JPayListener() {
            @Override
            public void onPaySuccess() {
                Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPayError(int error_code, String message) {
                Toast.makeText(mContext, "支付失敗>"+error_code+" "+ message, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onPayCancel() {
                Toast.makeText(mContext, "取消了支付", Toast.LENGTH_SHORT).show();
            }
        });

或者

Alipay.getInstance(mContext).startAliPay(orderInfo, new JPay.JPayListener() {
            @Override
            public void onPaySuccess() {

            }

            @Override
            public void onPayError(int error_code, String message) {

            }

            @Override
            public void onPayCancel() {

            }
        });

4.案例的使用

appId以及相關的key我們都從服務端獲取

4.1 客戶端使用說明

  1. AndroidManifest.xml 的包名修改為申請應用的包名
  2. 將應用中的build.gradleapplicationId修改為申請應用的包名
  3. 測試的時候修改預設的簽名key

將key複製到專案的根目錄(app)中並修改buildTypes 配置如下

 signingConfigs {
        release {
            storeFile file("wxkey")
            storePassword '123456'
            keyAlias '1'
            keyPassword '123456'
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            signingConfig signingConfigs.release
        }
    }

4.2 服務端使用說明

  1. 開源專案如何下載、如何匯入到IDE 參考之前寫的文章微信公眾號之專案匯入
  2. 微信支付服務端具體實現在com.javen.weixin.controller.WeixinPayController.java 類中的appPay()
  3. 支付寶支付服務端具體實現在com.javen.alipay.AliPayController.java 類中的appPay()

4.3 參考資料

微信、支付寶APP支付詳細介紹參考資料 部落格地址

安利

如有疑問歡迎留言