微信支付客户端和服务器

1:首先去微信平台和支付平台下载所需要的资源

2:微信客户端代码 事例:

private void wx() {

    new Thread(){
        @Override
        public void run()  {
            final String url="";    //请求自己服务地址 下单
            //  final JSONObject canshu=new JSONObject();
            final Map<String, String> canshu = new HashMap<String, String>();
            canshu.put("appid","");   //微信开放平台审核通过的应用APPID
            canshu.put("attach","1600804523");   //附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
            canshu.put("body","canshu");  //商品描述交易字段格式根据不同的应用场景按照以下格式:APP——需传入应用市场上的APP名字-实际商品名称,天天爱消除-游戏充值。
            canshu.put("mch_id","1600804523");//   //微信支付分配的商户号
            String nonce=getRandomString(32);
            canshu.put("nonce_str",nonce);  //随机字符串,不长于32位。推荐随机数生成算法
            Log.e("微信支付随机数",nonce);
            canshu.put("notify_url","http://62.234.172.46:8080/pay/zifubaoCallback/payCallback");  //接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
            canshu.put("out_trade_no","32546895648756541235");   //商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*且在同一个商户号下唯一。详见商户订单号
           String ipv4= IPUtils.getIpAddress(pay.this);
            Log.e("ipv4",ipv4);
            canshu.put("spbill_create_ip",ipv4);  //支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP
            canshu.put("total_fee","1");  //订单总金额,单位为分,详见支付金额
            canshu.put("trade_type","APP");  //支付类型
          //  canshu.put("sign","0.01");  //签名,详见签名生成算法
            Log.e("微信支付",url+canshu);
             String orderInfo= post.doPost(url,canshu)+"";
            Log.e("微信支付",orderInfo);


            try {
                JSONObject jsonObject=JSON.parseObject(orderInfo.toString());
                String appid=jsonObject.getString("appid");
                String mch_id=jsonObject.getString("mch_id");
                String nonce_str=jsonObject.getString("nonce_str");
                String sign=jsonObject.getString("sign");
                String trade_type=jsonObject.getString("trade_type");
                String prepay_id=jsonObject.getString("prepay_id");
                WX_Pay pay = new WX_Pay(getContext());    //调用接口去吊起微信支付
                //appid,商户号,预付款ID
                  pay.pay(appid,mch_id,prepay_id,nonce_str,sign);
            } catch (Exception e) {
            e.printStackTrace();
        }
        }
    }.start();
public class WX_Pay {
    public IWXAPI api;
    private PayReq req;

    public WX_Pay(Context context) {

        api = WXAPIFactory.createWXAPI(context, "appid",false);
    }

    /**
     * 向微信服务器发起的支付请求
     */
    public void pay(String appid,String partnerid,String prepayid,String nonce_str,String sign) {
        req = new PayReq();
        req.appId = appid;//APPID
        req.partnerId = partnerid;//    商户号
        req.prepayId = prepayid;//  预付款ID
        req.nonceStr = nonce_str;//随机数
        req.timeStamp = getTimeStamp();//时间戳
        req.packageValue = "Sign=WXPay";//固定值Sign=WXPay
        //String sign = getSign();
        req.sign = sign;//签名
        api.registerApp(appid);
        api.sendReq(req);
    }
    priv
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值