中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android實現微信支付功能詳解

發布時間:2020-09-02 01:09:17 來源:腳本之家 閱讀:306 作者:Sun2Ming 欄目:移動開發

1.集成微信支付SDK:

在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" +
   "&timestamp=" + "后臺返回的timestamp";
 String stringSignTemp = stringA + "&key=" + "后臺商戶服務端的key";
 String sign = MD5.getMessageDigest(stringSignTemp.getBytes()).toUpperCase();
 return sign;
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳西县| 来安县| 临夏县| 山东| 甘孜| 彭州市| 石台县| 通州市| 成安县| 正安县| 卓资县| 淳化县| 镇江市| 共和县| 开鲁县| 齐河县| 海南省| 南充市| 乌恰县| 延庆县| 进贤县| 衡东县| 汝阳县| 泰安市| 资兴市| 镇平县| 石台县| 汝南县| 新安县| 霍林郭勒市| 偃师市| 保德县| 贵南县| 南城县| 安溪县| 关岭| 东台市| 元谋县| 黄冈市| 墨江| 公安县|