Android 微信支付集成过程
一、下载最新微信支付SDK demo 并运行过程
官网 https://pay.weixin.qq.com/wiki/doc/api/index.html
APP支付 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1
以下链接是当前可用链接(如若官方更新后请告知,感谢)
微信支付demo gradle版本(官方demo下载后无法运行,小编根据官方demo代码自己重新建的工程 )
https://download.csdn.net/download/w690333243/11008796
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN
eclipse demo
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1
新建的官方demo运行效果图
二、按照官方文档,在包名下新建 wxapi目录,并新建Activity WXPayEntryActivity(activity名必须是这个WXPayEntryActivity,在此activity中接收充值相关的结果回调)
在 app 下的build.gradle 中添加依赖
//compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+' compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1' 12
WXPayEntryActivity.java
import android.content.Intent; import android.os.Bundle; import android.util.Log; import com.tencent.mm.opensdk.modelbase.BaseReq; import com.tencent.mm.opensdk.modelbase.BaseResp; import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler; import com.tencent.mm.opensdk.openapi.WXAPIFactory; public class WXPayEntryActivity extends BaseSwipeBackActivity implements IWXAPIEventHandler { private final String TAG = "WXPayEntryActivity"; private IWXAPI api; @Override protected String getTitleText() { return null; } @Override protected void initViews(Bundle savedInstanceState) { api = WXAPIFactory.createWXAPI(this, App.appId); api.handleIntent(getIntent(), this); } @Override public int getContentViewId() { return R.layout.activity_wxpay_entry; } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq baseReq) { Log.i(TAG, "onReq: " + baseReq.toString()); } /** * @auther WangQX * created at 2019/3/11 0011 * https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2 * errCode = -1 //签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等 */ @Override public void onResp(BaseResp baseResp) { Log.i(TAG, "onResp: "); Log.i(TAG, "onPayFinish,errCode=" + baseResp.errCode); if (baseResp.errCode == BaseResp.ErrCode.ERR_COMM) { showToast(getResources().getString(R.string.recharge_failed)); } else if (baseResp.errCode == BaseResp.ErrCode.ERR_OK) { showToast(getResources().getString(R.string.recharge_successful)); } startActivity(MyWalletActivity.class); finish(); } }
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162请求微信充值方法:
data是服务器返回的支付相关信息的json
//微信支付 private void payWechat(final String data) { final IWXAPI msgApi = WXAPIFactory.createWXAPI(this, null); WeChatPayEntity weChatPayEntity = new Gson().fromJson(data, new TypeToken<WeChatPayEntity>() { }.getType()); if (weChatPayEntity == null) { return; } String appId = weChatPayEntity.getAppid(); if (!TextUtils.isEmpty(appId)) { // 将该app注册到微信 msgApi.registerApp(appId); PayReq req = new PayReq(); App.appId = appId; req.appId = appId; req.partnerId = weChatPayEntity.getPartnerid(); req.prepayId = weChatPayEntity.getPrepayid(); req.packageValue = weChatPayEntity.getPackageX(); req.nonceStr = weChatPayEntity.getNoncestr(); req.timeStamp = weChatPayEntity.getTimestamp(); req.sign = weChatPayEntity.getPaySign(); boolean result = msgApi.sendReq(req); Log.d(TAG, "payWechat: result:"+result); } }
12345678910111213141516171819202122232425在 清单文件AndroidManifest.xml中添加
<activity android:name="com.dhh.easy.wahu.wxapi.WXPayEntryActivity" android:launchMode="singleTop" // 这句话网上有人说的必须要加,小编没加,根据情况自行调试。 android:exported="true"></activity> 12345
出现的问题:
android 的App只能在第一次调起微信支付界面,且支付不一定成功(没验证是否能支付成功,只看到第二次无法调起支付界面了),原因:微信开放平台中填写的应用相关的包名、签名不正确
android studio 下 Terminal窗口中输入如下命令
keytool -list -keystore -v -keystore C:UsersAdministratorDesktoptest.jks 查看签名 1
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5#
https://blog.csdn.net/xuchao_blog/article/details/58135338
https://blog.csdn.net/afanbaby/article/details/60885642
https://blog.csdn.net/Jarry_JR/article/details/80843901
https://blog.csdn.net/m_sicily/article/details/82493171
https://blog.csdn.net/u010083127/article/details/78968761
https://blog.csdn.net/u012552275/article/details/78758571/
https://blog.csdn.net/xinluqishi123/article/details/52234002
https://blog.csdn.net/li438730745/article/details/80494155
https://blog.csdn.net/ws1836300/article/details/53893102
https://www.jianshu.com/p/81c6c7d3390a
https://blog.csdn.net/hongcha36/article/details/78743535
https://blog.csdn.net/catshitone/article/details/73614321
https://blog.csdn.net/CLinuxF/article/details/79456207
https://blog.csdn.net/jay100500/article/details/52956000
相关知识
微信支付上线“缘起七夕,情寄明灯”活动
华为推出独立于支付宝、微信的支付平台,为“花瓣支付”
花瓣支付可以扫微信吗
华为“花瓣支付”来了,与微信、支付宝有什么区别
无法错过的微信花呗开通全攻略,轻松享受信用支付新体验
“花瓣支付”来了!华为要和支付宝微信抢市场?
对接支付宝、微信、第三方支付,超详细讲解+demo演示
华为“花瓣支付”来了!将从底层截胡微信支付宝?支付市场迎变局
华为旗下支付公司获批更名为“花瓣支付”,不直接对标微信支付和支付宝丨大厂金融事
微信小程序期末大作业解析:打造花店小程序
网址: Android 微信支付集成过程 https://www.huajiangbk.com/newsview898799.html
上一篇: 2937538EPICInter |
下一篇: 支付发展历程——带你了解支付背后 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039