# wechatPay-unity **Repository Path**: onelei1992/wechatPay-unity ## Basic Information - **Project Name**: wechatPay-unity - **Description**: wechatPay plugin for unity. - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-09-10 - **Last Updated**: 2025-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wechatPay-unity wechatPay plugin for unity. ## NOTICE if package name is "com.onelei.wechatpay.unityplugin" , then the "WXPayEntryActivity.java" file must below "wxapi" folder. The Activity is used to receive the payment result callback. ![wechat](./image/wechat.png) ## android function ``` public void weChatPay(String appId,String partnerId,String prepayId,String nonceStr, String timeStamp,String packageValue,String sign,String extData) { PayReq req = new PayReq(); req.appId = appId; req.partnerId = partnerId; req.prepayId = prepayId; req.nonceStr = nonceStr; req.timeStamp = timeStamp; req.packageValue = packageValue; req.sign = sign; req.extData = extData; // 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信 api = WXAPIFactory.createWXAPI(this, APPID,false); api.registerApp(APPID); api.sendReq(req); } /** * 得到支付结果回调 */ @Override public void onResp(BaseResp resp) { int errCode = resp.errCode; switch (errCode) { case -2: Toast.makeText(this,"支付取消",Toast.LENGTH_LONG).show(); break; default: Toast.makeText(this,"支付错误,errCode "+errCode,Toast.LENGTH_LONG).show(); break; } UnityPlayer.UnitySendMessage("SDKManager","PayCallBack",""+errCode); finish();//这里重要,如果没有 finish();将留在微信支付后的界面. } ``` ## CSharp ``` private void WeChatPayAndroid(string appid, string partnerid, string prepayid, string noncestr, string timestamp, string package, string sign, string extraData) { #if UNITY_ANDROID var ja = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var jo = ja.GetStatic("currentActivity"); jo.Call("weChatPay", appid, partnerid, prepayid, noncestr, timestamp, package, sign, extraData); #endif } void PayCallBack(string errCode) { } ``` ## AndroidManifest.xml ``` ``` ``` ```