groovy
dependencies {
}
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application>
<activity
android:name="com.tencent.mm.opensdk.openapi.IntentHandlerActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="YOUR_PACKAGE_NAME.wxapi.WXPayEntryActivity"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data
android:name="com.tencent.mm.sdk.openapi.WXAPIFactory.APPID"
android:value="YOUR_WECHAT_APPID" />
</application>
public class MainActivity extends AppCompatActivity {
private static final String APP_ID = "YOUR_WECHAT_APPID";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IWXAPI api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.registerApp(APP_ID);
}
}
public class LoginActivity extends AppCompatActivity {
private static final int REQUEST_CODE_LOGIN_WECHAT = 1001;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.registerApp(APP_ID);
findViewById(R.id.btn_login_wechat).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SendAuth.Req req = new SendAuth.Req();
api.sendReq(req);
}
});
}
@Override
protected void onResume() {
super.onResume();
handleWechatLoginCallback(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleWechatLoginCallback(intent);
}
private void handleWechatLoginCallback(Intent intent) {
if (intent != null && intent.hasExtra("_wxapi_sendauth_resp")) {
SendAuth.Resp resp = new SendAuth.Resp(intent.getBundleExtra("_wxapi_sendauth_resp"));
if (resp.errCode == BaseResp.ErrCode.ERR_OK) {
} else {
}
}
}
private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
public class ShareActivity extends AppCompatActivity {
private static final int REQUEST_CODE_SHARE_WECHAT = 1002;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_share);
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.registerApp(APP_ID);
findViewById(R.id.btn_share_wechat).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
WXTextObject textObj = new WXTextObject();
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObj;
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.message = msg;
api.sendReq(req);
}
});
}
@Override
protected void onResume() {
super.onResume();
handleWechatShareCallback(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleWechatShareCallback(intent);
}
private void handleWechatShareCallback(Intent intent) {
if (intent != null && intent.hasExtra("_wxapi_sendmessagetowx_req")) {
int result = intent.getIntExtra("_wxapi_baseresp_errcode", BaseResp.ErrCode.ERR_OK);
if (result == BaseResp.ErrCode.ERR_OK) {
} else {
}
}
}
private String buildTransaction(final String type) {
return type + System.currentTimeMillis();
}
private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
public class PayActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pay);
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.registerApp(APP_ID);
findViewById(R.id.btn_pay_wechat).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PayReq req = new PayReq();
api.sendReq(req);
}
});
}
@Override
protected void onResume() {
super.onResume();
handleWechatPayCallback(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleWechatPayCallback(intent);
}
private void handleWechatPayCallback(Intent intent) {
if (intent != null && intent.hasExtra("_wxapi_payresp")) {
PayResp resp = new PayResp(intent.getBundleExtra("_wxapi_payresp"));
if (resp.errCode == BaseResp.ErrCode.ERR_OK) {
} else if (resp.errCode == BaseResp.ErrCode.ERR_USER_CANCEL) {
} else {
}
}
}
private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}