微信支付
需要自己打出jar包,供unity调用。 贴出java代码,以作日后参考
WXEntryActivity
package com
.hnsh
.qlmj
.wxapi
;
import android
.content
.Intent
;
import android
.widget
.Toast
;
import cn
.sharesdk
.wechat
.utils
.WXAppExtendObject
;
import cn
.sharesdk
.wechat
.utils
.WXMediaMessage
;
import cn
.sharesdk
.wechat
.utils
.WechatHandlerActivity
;
public class WXEntryActivity extends WechatHandlerActivity {
public WXEntryActivity() {
}
public void onGetMessageFromWXReq(WXMediaMessage msg
) {
if(msg
!= null
) {
Intent iLaunchMyself
= this.getPackageManager().getLaunchIntentForPackage(this.getPackageName());
this.startActivity(iLaunchMyself
);
}
}
public void onShowMessageFromWXReq(WXMediaMessage msg
) {
if(msg
!= null
&& msg
.mediaObject
!= null
&& msg
.mediaObject
instanceof WXAppExtendObject) {
WXAppExtendObject obj
= (WXAppExtendObject
)msg
.mediaObject
;
Toast
.makeText(this, obj
.extInfo
, 0).show();
}
}
}
WXPayEntryActivity
package com
.hnsh
.qlmj
.wxapi
;
import android
.app
.Activity
;
import android
.content
.Intent
;
import android
.os
.Bundle
;
import android
.util
.Log
;
import com
.tencent
.mm
.sdk
.modelbase
.BaseReq
;
import com
.tencent
.mm
.sdk
.modelbase
.BaseResp
;
import com
.tencent
.mm
.sdk
.openapi
.IWXAPI
;
import com
.tencent
.mm
.sdk
.openapi
.IWXAPIEventHandler
;
import com
.tencent
.mm
.sdk
.openapi
.WXAPIFactory
;
import com
.unity3d
.player
.UnityPlayer
;
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
private static final String TAG
= "Unity";
private String APP_ID
= "wxef5d09e3283e5202";
private IWXAPI api
;
public WXPayEntryActivity() {
}
public void onCreate(Bundle savedInstanceState
) {
super.onCreate(savedInstanceState
);
this.api
= WXAPIFactory
.createWXAPI(this, this.APP_ID
);
this.api
.handleIntent(this.getIntent(), this);
}
protected void onNewIntent(Intent intent
) {
super.onNewIntent(intent
);
this.setIntent(intent
);
this.api
.handleIntent(intent
, this);
}
public void onReq(BaseReq req
) {
}
public void onResp(BaseResp resp
) {
Log
.d("Unity", "onPayFinish, errCode = " + resp
.errCode
);
if(resp
.getType() == 5) {
int retCode
= resp
.errCode
;
UnityPlayer
.UnitySendMessage("GameRoot", "WXPayCallback", String
.valueOf(retCode
));
this.finish();
}
}
}