之前搞微信支付一直不能够回调支付结果的回调页面,现在来说一下怎么成功回调页面
参照文档:调起支付的代码:
private void sendPayReq(String appid, String partnerid, String prepayid, String packageValue, String noncestr, int timestamp, String sign) {//微信注册APPIDIWXAPI api = WXAPIFactory.createWXAPI(this,null);api.registerApp(appid);PayReq request = new PayReq();request.appId = appid;request.partnerId = partnerid;request.prepayId = prepayid;request.packageValue = packageValue;request.nonceStr= noncestr;request.timeStamp= timestamp+"";request.sign= sign;api.sendReq(request);}
支付完成后返回app需要回调页面显示支付结果需要做的事:
在androidmenifest.xml文件中注册一下(不能更改路径),然后将官方demo中的WXPayEntryActivity复制到自己的工程目录下,这里需要注意,复制的路径一定要准确
比如为com.example.app.wxapi.WXPayEntryActivity
<!--微信支付回调函数--><activityandroid:name=".wxapi.WXPayEntryActivity"android:exported="true"android:screenOrientation="portrait" />
也可以复制以下代码,复制到以上的文件夹,然后在onResp回调函数中进一步操作:
package com.example.app.wxapi;public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{private IWXAPI api;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.recharge_succeed);api = WXAPIFactory.createWXAPI(this, Fields.WEICHAT_APP_ID);api.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {Toast.makeText(getApplicationContext(),"onReq",Toast.LENGTH_SHORT).show();}@Overridepublic void onResp(BaseResp resp) {int code = resp.errCode;if (code == 0){//显示充值成功的页面和需要的操作}if (code == -1){//错误}if (code == -2){//用户取消}}}
微信支付开发文档