ping++调微信支付页面调不起来,怎么入手-

项目中遇到一个这样的问题,用的是ping++支付,集成了支付宝和微信,支付宝支付是没有问题的,微信界面就是死活调不起,直接就是显示支付失败。

我是这样排查的:

1.微信支付调不起来,微信分享呢?微信分享测试,是没有问题的,说明在微信开发者平台上注册的应用AppID以及签名是没有问题,因为这两项是要配置在shareSdk中的。

2.看到微信开发者平台上的签名以及id,去ping++的开发者平台上验证,配置的微信支付的签名是否有问题,还是没有问题------奇了怪了。

3.配置没有问题,那看具体的代码呢,参照ping++的开发文档,从清单文件到调支付界面的代码,对照着看,有没有配置错?

    /**
     * 调用第三方支付
     *
     * @param chargesUrl
     */
    private void pay(String chargesUrl) {
        Intent intent = new Intent();
        String packageName = getPackageName();
        ComponentName componentName_WX = new ComponentName(packageName, packageName + ".wxapi.WXPayEntryActivity");
        intent.setComponent(componentName_WX);
        intent.putExtra(PaymentActivity.EXTRA_CHARGE, chargesUrl);
        startActivityForResult(intent, REQUEST_CODE_PAYMENT);
    }
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //支付页面返回处理
        if (requestCode == REQUEST_CODE_PAYMENT) {
            if (resultCode == Activity.RESULT_OK) {
                String result = data.getExtras().getString("pay_result");
                Intent intent = new Intent(PayServiceOrderOptionActivity.this, PayResultActivity.class);
                intent.putExtra("result", result);
                startActivity(intent);
                finish();
            }
        }
    }
也是没有问题的。

4.还是得熟悉ping++的支付流程,前端点击支付按钮的时候,选择的有微信还是支付宝,然后往自己服务器发送请求,传递的参数有pay_style(选择的支付方式,支付宝是0 ,微信是2)和trade_no(订单号),然后服务器返回支付信息,然后拿着支付信息再跳转支付。

具体代码如下:

    /**
     * 结算中心获取订单信息跳转支付
     */
    @OnClick(R.id.order_submit)
    void submitPay() {
        ApiService.getInstance().getPayInfo(selectedPayOption.value, tradeNo).enqueue(new ApiServiceCallback<JsonObject>() {

            @Override
            public void onSuccessful(JsonObject result) {
                if (result != null) {
                    pay(result.toString());
                }
                hideProgress();
            }
        });
    }
pay()就是调取的三方支付,一步步调试的时发现,选择支付宝还是微信支付后台返回的result中的信息中有一个字段是channel,调选付宝返回的是“alipay”,选微信返回的竟然是是“alipay_wap”,这是银联的,应该返回“wechat”才对。

5.现在问题明确了,肯定和这相关的,(1)后台返回有误 (2)前端提交的时候传的支付渠道有问题。   最后发现就是前端选择支付方式的时候,支付渠道错了。 改正好,后台返回的数据没问题,微信支付也就能调起了。

选择支付页面是这样的:

   

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值