服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android微信支付开发问题

Android微信支付开发问题

2021-03-28 18:01Android开发网 Android

并不是所有的BAT的API都是非常好用的,微信支付就存在不少问题,总结一下微信支付实现中出现的问题,需要的朋友可以参考下

Android微信支付开发问题

并不是所有的BAT的API都是非常好用的,微信支付就有不少的缺陷,总结一下微信支付实现中出现的问题

  坑点一:

  PayReq的参数 sign的生成

  PayReq对象有个参数为packageValue

而sign生成时要用到packageValue,但是对应的Key是package,这里的key容易弄错

 

复制代码 代码如下:

List<NameValuePair> signParams = new LinkedList<NameValuePair>();
        signParams.add(new BasicNameValuePair("appid", req.appId));
        signParams.add(new BasicNameValuePair("noncestr", req.nonceStr));
        signParams.add(new BasicNameValuePair("package", req.packageValue));
        signParams.add(new BasicNameValuePair("partnerid", req.partnerId));
        signParams.add(new BasicNameValuePair("prepayid", req.prepayId));
        signParams.add(new BasicNameValuePair("timestamp", req.timeStamp));
 

 

坑点二:

支付回调方法

微信使用反射找到对应的类并实现的回调

微信官方给出的说明如下:

参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。

意思如下:

1、你要在创建个packageName+.wxapi的包,如:你的项目报名:com.android.qq,那你要在该包名下创建个wxapi的包

2、在该包下创建个名为 WXPayEntryActivity的Activity类,并实现 接口 IWXAPIEventHandler ,支付的回调就在该接口的 onResp(BaseResp resp)方法中进行

 

复制代码 代码如下:

package com.android.qq.wxapi;
 
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
 

    @Override
    public void onResp(BaseResp resp) {
        //处理支付回调
        }
 }

 

 

三:签名测试

这个算不上坑点洛,很多第三方都要这样才可测试

支付的测试必须对应签名的包,否则无法测试支付功能

以上内容就是Android微信支付开发问题,希望对大家有所帮助。

延伸 · 阅读

精彩推荐