Android 微信支付 支付寶支付簡單使用

微信支付:

1.添加依賴:

implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

2. 報名下建文件夾wxapi 

 

.

3.

我這裏是有一個分享的回調 不用管那個   支付需要的是WXPayEntryActivity這個 

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {

    private Context context = this;
    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this, ConstUtils.WXID);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq baseReq) {

    }

    @Override
    public void onResp(BaseResp resp) {
        Log.e("=====", resp.errCode + "");
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            if (resp.errCode == 0) {
                Toast.makeText(this, "支付成功", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(this, "支付失敗", Toast.LENGTH_LONG).show();
            }
            finish();
        }
    }
}

4.在Androidmanifest中:

<activity
    android:name=".wxapi.WXPayEntryActivity"
    android:exported="true"
    android:launchMode="singleTop">

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="你的APPID" />
    </intent-filter>

</activity>

5.調用

IWXAPI api = WXAPIFactory.createWXAPI(TestActivity.this, ConstUtils.WXID);//AppId
PayReq req = new PayReq();
req.appId = response.body().getAppid();
req.partnerId = response.body().getPartnerid();
req.prepayId = response.body().getPrepayid();
req.nonceStr = response.body().getNoncestr();
req.timeStamp = response.body().getTimestamp();
req.packageValue = "Sign=WXPay";
req.sign = response.body().getSign();//簽名後天返回的
// 在支付之前,如果應用沒有註冊到微信,應該先調用IWXMsg.registerApp將應用註冊到微信
api.registerApp(ConstUtils.WXID);
api.sendReq(req);

 

微信支付結束     其實都集成過好幾次了   還是遇到了坑  後臺那邊選擇了沙箱環境  轉成爲正式就沒有問題了 

 

支付寶支付:

導入支付寶 SDK

下載地址:https://download.csdn.net/download/mr___xu/10906070  (或者到官網下載)

一、將 alipaySdk-15.5.7-20181023110917.aar 包放在您的應用工程的 libs 目錄下(圖片中文件名僅做示例,請以實際 SDK 文件名爲準):

二、在您主項目的 build.gradle 中,添加下面的內容,將 libs 目錄作爲依賴倉庫:

image

allprojects {
    repositories {

        // 添加下面的內容
        flatDir {
            dirs 'libs'
        }

        // ... jcenter() 等其他倉庫
    }
}

三、在您 App Module 的 build.gradle 中,添加下面的內容,將支付寶 SDK 作爲項目依賴:

image

dependencies {

    // 添加下面的內容
    compile (name: 'alipaySdk-15.5.7-20181023110917', ext: 'aar')

}


至此,支付寶 SDK 開發資源導入完成。

申請運行時權限

android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.READ_PHONE_STATE
android.permission.WRITE_EXTERNAL_STORAGE

 

支付接口調用

PayTask對象主要爲商戶提供訂單支付、查詢功能,及獲取當前開發包版本號。
獲取PayTask支付對象調用支付(支付行爲需要在獨立的非ui線程中執行),代碼示例:

final String orderInfo = info;   // 訂單信息

		Runnable payRunnable = new Runnable() {

			@Override
			public void run() {
				PayTask alipay = new PayTask(DemoActivity.this);
				String result = alipay.payV2(orderInfo,true);

				Message msg = new Message();
				msg.what = SDK_PAY_FLAG;
				msg.obj = result;
				mHandler.sendMessage(msg);
			}
		};
	     // 必須異步調用
		Thread payThread = new Thread(payRunnable);
		payThread.start();

 

支付結果獲取和處理

調用pay方法支付後,將通過2種途徑獲得支付結果:

同步返回
商戶應用客戶端通過當前調用支付的Activity的Handler對象,通過它的回調函數獲取支付結果。(可參考alipay_demo實現)
代碼示例:

private Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {
			Result result = new Result((String) msg.obj);
			Toast.makeText(DemoActivity.this, result.getResult(),
						Toast.LENGTH_LONG).show();
		};
	};

異步通知
商戶需要提供一個http協議的接口,包含在請求支付的入參中,其key對應notify_url。支付寶服務器在支付完成後,會以POST方式調用notify_url傳輸數據。

獲取當前開發包版本號

調用PayTask對象的getVersion()方法查詢。

代碼示例:

PayTask payTask = new PayTask(activity);
String version = payTask.getVersion();

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章