支付宝,微信支付方式集成

1 篇文章 0 订阅
1 篇文章 0 订阅

支付宝集成对于一些刚出来的同学来说确实很头疼,因为没有公司的pid,也没有办法测试,但其实只要接触你就

会发现,真的是很容易,有个朋友写了篇博客,我感觉是已经很详细了这里直接给出地址: 支付宝集成步骤

接下来介绍一下微信支付的集成:

如果你去看微信支付的官方文档的话,会发现,很多坑,很多东西不明白什么意思,我们一点一点来:

1.首先,你要去微信开放平台去注册应用,审核通过后会生成一个APPID,在【开放平台】中的栏目【管理中心 /

修改应用 / 修改开发信息】里面设置应用签名和应用包名,其中的应用签名需要我们去下载一个签名工具,在手

机或者模拟器上运行后在输入框输入包名,然后就可以生成相应的签名

2.下载jar包导入工程:下载地址如下: sdk下载地址

3.注册APPID

商户APP工程中引入微信JAR包,调用API前,需要先向微信注册您的APPID,代码如下:

final IWXAPI api = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信
api.registerApp(“这里填APPID”);

4.以下是吊起微信支付的关键代码:

PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";
request.partnerId = "1900000109";
request.prepayId= "1101000000140415649af9fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "1101000000140429eb40476f8896f4c9";
request.timeStamp= "1398746574";
request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
api.sendReq(req);

可能许多人会迷惑数据都是啥意思,其实不用去管,这些几乎都是服务端直接返回的字段,但那个sign需要我们自己去做一下二次签名

private String signNum(String mchKey,String partnerId, String prepayId, String packageValue, String nonceStr, String timeStamp) {
        String stringA =
                "appid=" + Constants.APP_ID
                        + "&noncestr=" + nonceStr
                        + "&package=" + packageValue
                        + "&partnerid=" + partnerId
                        + "&prepayid=" + prepayId
                        + "&timestamp=" + timeStamp;

        //微信key  格式这这样的 abcdl562asjlfd452dkadf1asdldfpd4
        //微信key的路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
        //这里key是后台给我们的,当然也可以写死
        String stringSignTemp = stringA + "&key=" + mchKey;

        return MD5.getMessageDigest(stringSignTemp.getBytes()).toUpperCase();
    }

5.这可能是最难的一步,因为文档给的太不清晰了,其实意思就是支付结果的回调只能写到特定类

(WXPayEntryActivity)里,而这个类又只能写在特定包(wxapi)下,而这个包又必须在指定路径下(根路径,也就是

applicationId “com.boju.bobo.boboproject”中的com.boju.bobo.boboproject下,微信的分享和三方登录

的回调也是这么做的),这下都做好了,就只要在类里做操作就好了,例子如下:

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
    private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";
    private IWXAPI api;
    private static final String APP_ID = "your app id";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pay_result);
        api = WXAPIFactory.createWXAPI(this, APP_ID);
        api.handleIntent(getIntent(), this);
    }
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }
    @Override
    public void onReq(BaseReq req) {
    }
    /**
     * 得到支付结果回调
     */
    @Override
    public void onResp(BaseResp resp) {
        // 支付结果码
    }
}

恩,目前就这么多吧,可能会有不对或者不足的地方,希望大家指出,我后期会做修改

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值