微信支付



copy jar

  

copy    java


清单文件:           个人感觉  scheme  过滤不需要加    因为我是百度看到别人加了 所以就加上了  scheme 是 appid      可以去掉试一试  应该是没有问题的


使用时 :先注册

msgApi = WXAPIFactory.createWXAPI(mContext, Constants.APP_ID);
me_shoppingCart_order_pay = this;

然后访问服务器  让其返回调起支付所需参数

WxBean2 wxPayBean = gson.fromJson(response.get(),WxBean2.class);

PayReq req = new PayReq();
req.appId        = wxPayBean.getResult().getAppid();
req.partnerId     = wxPayBean.getResult().getPartnerid();
req.prepayId      = wxPayBean.getResult().getPrepayid();
req.nonceStr      = wxPayBean.getResult().getNoncestr();
req.timeStamp     = String.valueOf(wxPayBean.getResult().getTimestamp());
req.packageValue   = wxPayBean.getResult().getPackageX();
req.sign         = wxPayBean.getResult().getSign();
req.extData          = "app data"; // optional
SPUtils.put(mContext,"isWxPayOrder",true);
SPUtils.put(mContext,"isWxPayOrderId",order_id);
        // 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
ToastUtils.showToast(mContext, "正常调起支付");
msgApi.sendReq(req);

生成签名的参数:

appId、nonceStr、packageValue、partnerId、prepayId、timeStamp

注意:正式包才可以吊起微信支付

回调的处理:   这里其实可以自定义个监听  用来处理 支付后的界面回退问题   我这里直接在sp中做的标记

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);
//        setContentView(R.layout.pay_result);
        
       api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);
        api.handleIntent(getIntent(), this);
    }

   @Override
   protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      setIntent(intent);
        api.handleIntent(intent, this);
   }

   @SuppressLint("LongLogTag")
   @Override
   public void onReq(BaseReq req) {
      Log.e(TAG, "发起请求");
   }

   @SuppressLint("LongLogTag")
   @Override
   public void onResp(BaseResp resp) {
      Log.e(TAG, "onPayFinish, errCode = " + resp.errCode);
      Log.e(TAG, "onPayFinish, toString = " + resp.toString());
      Log.e(TAG, "onPayFinish, errStr = " + resp.errStr);
      Log.e(TAG, "onPayFinish, transaction = " + resp.transaction);
      final BaseResp finalResp = resp;
      if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.setTitle(R.string.app_tip);
         String msg ="";
         switch (resp.errCode){
            case 0:

//             ToastUtils.showToast(this,"支付成功");
               msg = "支付成功";
//             getSystemService(ActivityManager);
               break;
            case -1:
//             ToastUtils.showToast(this,"支付失败");
               msg = "支付失败";
               break;
            case -2:
//             ToastUtils.showToast(this,"取消支付");
               msg = " 未支付";
               break;
         }
         builder.setMessage(getString(R.string.pay_result_callback_msg, msg));
         builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

               if (finalResp.errCode == 0 && (boolean)SPUtils.get(WXPayEntryActivity.this,"isWxPayOrder",false)){
                  String payOrderId = (String)SPUtils.get(WXPayEntryActivity.this,"isWxPayOrderId","");
                  if (!TextUtils.isEmpty(payOrderId)){
                     Bundle bundle = new Bundle();
                     bundle.putString("order_id",payOrderId);
                     ActivityUtils.jumpToActivity(WXPayEntryActivity.this,Me_Order_Detail.class,bundle);
                     SPUtils.put(WXPayEntryActivity.this,"isWxPayOrder",false);
                     SPUtils.put(WXPayEntryActivity.this,"isWxPayOrderId","");
                     Me_ShoppingCart_Order_Pay.me_shoppingCart_order_pay.finish();
                  }
               }

               finish();
            }
         });
         builder.show();
      }
   }
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值