Android 微信支付回调地址设置

在开发Android应用时,如果需要使用微信支付功能,那么支付成功后会通过回调通知我们的服务端,同时我们也需要在Android端设置好支付回调地址,以确保支付成功后能及时通知到我们的应用。

设置微信支付回调地址

要设置微信支付回调地址,首先需要在微信开放平台注册账号,并在后台设置好支付回调地址。接下来,在Android端的代码中进行配置,以便在支付成功后能够接收到回调。

1. 修改AndroidManifest.xml

首先,在AndroidManifest.xml文件中添加权限和声明Activity:

<uses-permission android:name="android.permission.INTERNET" />

<activity
    android:name=".WXPayEntryActivity"
    android:exported="true"
    android:launchMode="singleTop">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

2. 创建WXPayEntryActivity

在包名下创建WXPayEntryActivity类,用于接收微信支付结果:

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        handleIntent(getIntent());
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        handleIntent(intent);
    }

    private void handleIntent(Intent intent) {
        IWXAPI api = WXAPIFactory.createWXAPI(this, "your_wechat_app_id");
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq baseReq) {
        // 暂时不处理请求
    }

    @Override
    public void onResp(BaseResp baseResp) {
        if (baseResp instanceof PayResp) {
            PayResp payResp = (PayResp) baseResp;
            int errCode = payResp.errCode;
            // 处理支付结果
        }
    }
}

3. 发送支付请求

在发送微信支付请求时,确保将回调地址设置为WXPayEntryActivity

PayReq request = new PayReq();
request.appId = "your_wechat_app_id";
request.partnerId = "your_partner_id";
request.prepayId = "prepay_id";
request.packageValue = "Sign=WXPay";
// 设置其他参数
request.sign = "sign";
api.sendReq(request);

流程图

flowchart TD
    A[开始] --> B[微信支付请求]
    B --> C[跳转微信客户端]
    C --> D[用户支付]
    D --> E[支付成功]
    E --> F[回调通知微信]
    F --> G[微信通知服务器]
    G --> H[处理支付结果]
    H --> I[结束]

序列图

sequenceDiagram
    participant Android
    participant 微信
    participant 服务器
    Android ->> 微信: 发送支付请求
    微信 -->> Android: 打开微信客户端
    Android ->> 微信: 用户支付
    微信 -->> 服务器: 回调通知
    服务器 -->> 微信: 验证通知
    微信 -->> Android: 支付结果通知
    Android ->> 服务器: 处理支付结果

通过以上步骤,我们可以成功设置Android端的微信支付回调地址,并处理支付成功后的结果。确保在开发过程中按照以上流程操作,可以避免支付回调失败的情况,提升用户体验。