微信支付步驟詳解

2021-07-11 17:43:41 字數 2523 閱讀 4642

簽名演算法

第一步,設所有傳送或者接收到的資料為集合m,將集合m內非空引數值的引數按照引數名ascii碼從小到大排序(字典序),使用url鍵值對的格式(即key1=value1&key2=value2…)拼接成字串stringa。

因為 我們伺服器人員什麼都沒寫,所以下面的生成預支付id需要我們自己寫

/**

*/public class

webchatpay

extends

asynctask

>

}/**

* 1..先獲取預支付交易會話prepayid

*/@override

protected mapdoinbackground(object... params)

/*** 2..獲取到預支付交易會話prepayid後,傳送支付請求

*/@override

protected void onpostexecute(mapresult)

string prepayid = result.get("prepay_id"); //獲取商品的預支付交易會話id

if (textutils.isempty(prepayid))

//傳送支付請求

genpayreq(result);

}/**

* 1.1 生成獲取prepayid 的引數

* 注:請求引數必須按照ascii排序

*/private string genproductargs(payorderbean order) catch (exception e)

}/**

*1.2 生成簽名

*/stringbuilder sb = new stringbuilder();

for (namevaluepair param : params)

}string packagesign = md5.getmessagedigest(sb.tostring().getbytes()).touppercase();

return packagesign;

}/**

* 獲取隨機字串

*/private string gennoncestr()

/*** 生成xml格式的檔案

*/private string toxml(listparams)

return sb.tostring();

}/**

* 解析xml

*/public mapdecodexml(string content)

break;

case xmlpullparser.end_tag:

break;

}event = parser.next();

}return xmlmap;

} catch (exception e)

return

null;

}/**

* 3..生成支付引數,傳送請求

case r.id.id_bt_submit: //支付提交
new webchatpay().execute(this,orderbean);

break;

public
class

wxpayentryactivity

extends

activity

implements

iwxapieventhandler

@override

protected

void

onnewintent(intent intent)

@override

public

void

onreq(basereq req)

@override

/** * 如果支付成功則去後台查詢支付結果再展示使用者實際支付結果。

* 注意一定不能以客戶端返回作為使用者支付的結果,應以伺服器端的接收的支付通知或查詢api返回的結果為準

Android 微信支付步驟

public void requestwxpay context context,ordermodel ordermodel payreq payreq new payreq payreq.partnerid ordermodel.getmchid payreq.prepayid ordermode...

Android微信支付完整步驟

請求伺服器 private void postserver else if paytype.equals constants.three catch exception e private void wxpay wxpaybean bean else 必須在 包名 wxapi下。如 package ...

android微信支付詳細步驟

dependenciesdependencies import android.annotation.suppresslint import android.content.intent import android.os.bundle import android.util.log import ...