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)前端提交的時候傳的支付渠道有問題。   最後發現就是前端選擇支付方式的時候,支付渠道錯了。 改正好,後臺返回的數據沒問題,微信支付也就能調起了。

選擇支付頁面是這樣的:

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章