国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android實現(xiàn)微信支付功能詳解

2019-10-22 18:20:34
字體:
供稿:網(wǎng)友

 

1.集成微信支付SDK:

在build.gradle中,添加如下依賴

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

2.設置微信支付回調(diào)頁面:

路徑:項目包名.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:用戶取消……無需處理。發(fā)生場景:用戶不支付了,點擊取消,返回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.發(fā)起微信支付

/** * 注冊微信支付 */private void registerWx() { IWXAPI wxapi = WXAPIFactory.createWXAPI(context, null); wxapi.registerApp("你的APP_ID");}/** * 發(fā)起微信支付 */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;}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新密市| 汾西县| 韩城市| 库伦旗| 吉林省| 重庆市| 谢通门县| 前郭尔| 莱西市| 巴里| 铜鼓县| 高碑店市| 丹棱县| 武川县| 阿城市| 徐州市| 沙洋县| 隆子县| 碌曲县| 佛山市| 扶沟县| 喀什市| 肥城市| 额济纳旗| 临汾市| 公主岭市| 马关县| 磐安县| 西盟| 大同市| 乐都县| 望奎县| 芜湖县| 松阳县| 宜阳县| 乌审旗| 龙游县| 永州市| 淳化县| 滨海县| 章丘市|