Android项目中接入微信第三方支付及一些问题

来源:互联网 发布:淘宝店铺注册单可靠吗 编辑:程序博客网 时间:2024/05/16 16:20

一。接入微信SDK,添加依赖

compile files('libs/wechat-sdk-android-with-mta-1.0.2.jar')
二。新建类,必须放在文件夹weapi下,这个文件夹放在最外面,包名下
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {      private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";       private IWXAPI api;       @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);      api = WXAPIFactory.createWXAPI(this, "wxaf4ff003b4263c29");        api.handleIntent(getIntent(), this);    }   @Override   protected void onNewIntent(Intent intent) {      super.onNewIntent(intent);      setIntent(intent);        api.handleIntent(intent, this);   }   @Override   public void onReq(BaseReq req) {   }   @Override   public void onResp(BaseResp resp) {      if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {            if (resp.errCode==0){                Toast.makeText(this,"支付成功",Toast.LENGTH_SHORT).show();            }else {                Toast.makeText(this,"支付失败,请重试",Toast.LENGTH_SHORT).show();            }            finish();      }   }}
三。配置文件
<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="wxaf4ff003b4263c29" />    </intent-filter></activity>

四。掉后台接口拿到返回的传入微信支付的全部参数

//微信private void weChatPay(WeixinpayBean weixinpayBean){    IWXAPI api = WXAPIFactory.createWXAPI(My_OrderActivity.this, Constants.APP_ID);    api.registerApp(Constants.APP_ID);    PayReq req=new PayReq();    req.appId=Constants.APP_ID;//appId可打印出来直接复制如:我项目里的"wxaf4ff003b4263c29"    req.partnerId=weixinpayBean.getPartnerid();    req.prepayId=weixinpayBean.getPrepayid();    req.packageValue="Sign=WXPay";//定值    req.nonceStr=weixinpayBean.getNoncestr();    req.timeStamp=weixinpayBean.getTimestamp();    req.sign=weixinpayBean.getSign();    api.sendReq(req);}
五。我遇到的一些坑:调用微信支付参数都没问题,却就是调不到微信支付页面,直接调到回调类,弹出 我在里面加的toast支付失败
三个方法://注:只有打包过后才能测试微信支付
1.检查项目的签名
2.重新打包,测试失败过后,打开手机里的设置,然后清除应用数据,再次测试。
3.加上一段混淆代码,当然此方法未认证:
-keep class com.tencent.mm .opensdk.** { *;}-keep class com.tencent.wxop.** {*;}-keep class com.tencent.mm .sdk.** { *;}
六。只能说就这么简单的一点东西,却让我调的欲生欲死抓狂

阅读全文
0 0