對於支付寶支付 - 我是這樣做的

關於支付寶支付,不得不說,對於程序猿來說是最簡單的支付方式(對於某信,某聯來說)

準備工作 放入jar包等, 清單配置文件需要添加com.alipay.sdk.app.H5PayActivity

不多說,直接上代碼......

/**
* 調起支付寶  需要的參數要從後臺獲取(安全考慮)
* @param string
*/
private void requstAlipay(final String string){
new Thread(){
public void run() {
// 構造PayTask 對象
PayTask alipay = new PayTask(mContext);
// 調用支付接口,獲取支付結果
Log.i("支付string",""+string);
String result = alipay.pay(string, true);


Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
Log.i("輸出內容",result.toString()+"");
mHandler.sendMessage(msg);
};
}.start();
}


private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case SDK_PAY_FLAG: {
PayResult payResult = new PayResult((String) msg.obj);
/**
* 同步返回的結果必須放置到服務端進行驗證(驗證的規則請看https://doc.open.alipay.com/doc2/
* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&
* docType=1) 建議商戶依賴異步通知
*/

String resultStatus = payResult.getResultStatus();
// 判斷resultStatus 爲“9000”則代表支付成功,具體狀態碼代表含義可參考接口文檔
if (TextUtils.equals(resultStatus, "9000")) {
Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show();
} else {
// 判斷resultStatus 爲非"9000"則代表可能支付失敗
// "8000"代表支付結果因爲支付渠道原因或者系統原因還在等待支付結果確認,最終交易是否成功以服務端異步通知爲準(小概率狀態)
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(mContext, "支付結果確認中", Toast.LENGTH_SHORT).show();
} else {
// 其他值就可以判斷爲支付失敗,包括用戶主動取消支付,或者系統返回的錯誤
Toast.makeText(mContext, "支付失敗", Toast.LENGTH_SHORT).show();
}
}
break;
}
default:
break;
}
};
};


對於支付寶來說,支付還是很簡單的,沒有包名和一些其他限制,直接運行就可以測試,

如果還是不能支付(我還沒遇到過) 百度搜索吧




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