1.集成微信支付SDK:

創新互聯成立與2013年,公司以做網站、成都網站建設、系統開發、網絡推廣、文化傳媒、企業宣傳、平面廣告設計等為主要業務,適用行業近百種。服務企業客戶上1000+,涉及國內多個省份客戶。擁有多年網站建設開發經驗。為企業提供專業的網站建設、創意設計、宣傳推廣等服務。 通過專業的設計、獨特的風格,為不同客戶提供各種風格的特色服務。
在build.gradle中,添加如下依賴
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
2.設置微信支付回調頁面:
路徑:項目包名.wxapi
名稱:WXPayEntryActivity
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wx_pay_result);
api = WXAPIFactory.createWXAPI(this, "你的APP_ID");
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onResp(BaseResp resp) {
int errCode = resp.errCode;
}
}
errCode:說明
0:成功……展示成功頁面。
-1:錯誤……可能的原因:簽名錯誤、未注冊APPID、項目設置APPID不正確、注冊的APPID與設置的不匹配、其他異常等。
-2:用戶取消……無需處理。發生場景:用戶不支付了,點擊取消,返回APP。
3.設置Manifest
<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="你的APP_ID" /> </intent-filter> </activity>
4.設置MD5
public class MD5 {
private MD5() {
}
public final static String getMessageDigest(byte[] buffer) {
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
try {
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(buffer);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
return null;
}
}
}
5.發起微信支付
/**
* 注冊微信支付
*/
private void registerWx() {
IWXAPI wxapi = WXAPIFactory.createWXAPI(context, null);
wxapi.registerApp("你的APP_ID");
}
/**
* 發起微信支付
*/
private void wxPay() {
PayReq payReq = new PayReq();
payReq.appId = "后臺返回的appId";
payReq.partnerId = "后臺返回的partnerId";
payReq.prepayId = "后臺返回的prepayId";
payReq.packageValue = "后臺返回的package";
payReq.nonceStr = "后臺返回的nonceStr";
payReq.timeStamp = "后臺返回的timeStamp";
payReq.signType = "后臺返回的signType";
payReq.sign = signNum();
wxapi.sendReq(payReq);
}
/**
* 拼接sign
*/
public static String signNum() {
String stringA = "appid=" + "后臺返回的appid" +
"&noncestr=" + "后臺返回的noncestr" +
"&package=" + "后臺返回的package" +
"&partnerid=" + "后臺返回的partnerid" +
"&prepayid=" + "后臺返回的prepayid" +
"×tamp=" + "后臺返回的timestamp";
String stringSignTemp = stringA + "&key=" + "后臺商戶服務端的key";
String sign = MD5.getMessageDigest(stringSignTemp.getBytes()).toUpperCase();
return sign;
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。
文章標題:Android實現微信支付功能詳解
分享URL:http://www.yijiale78.com/article8/pdsgip.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、App設計、外貿建站、網站改版、電子商務、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯