我正在将Payfort付款网关集成到我的android应用程序中。我已经使用rest api生成令牌
     https://sbpaymentservices.payfort.com/FortAPI/paymentApi,现在我必须将该令牌传递给Fort sdk进行交易。

但是商家参考也需要生成才能传递到sdk堡。我找不到任何有关如何生成商家参考的信息,因为payfort文档中没有提供任何信息。

我也和支持者谈过,他们说我们必须通过我们自己的算法创建商家参考。

有人知道如何创建商家参考吗?任何帮助将不胜感激

String device_id = FortSdk.getDeviceId(this);
    Log.e("device_iddd",device_id+"");
    Map<String, String> map = new HashMap<>();
    map.put("command", "AUTHORIZATION");
    map.put("amount",String.valueOf(1));
    map.put("language", "en");
    map.put("merchant_reference", "r1FANA78-ok00tH0");
    map.put("currency","SAR");
    map.put("customer_name", "bharat");
    map.put("customer_email", "[email protected]");
    map.put("order_description", "Description");
    map.put("return_url", "http://faza.fazadigital.com/Faza_WS/payfortReturnPage.php");
    map.put("sdk_token", "441E41CFFF2E49F2E053321E320A4884");

    fortRequest.setRequestMap(map);
    try {
        FortSdk.getInstance().registerCallback(this, fortRequest, FortSdk.ENVIRONMENT.TEST, 10, fortCallback, new FortInterfaces.OnTnxProcessed() {
            @Override
            public void onCancel(Map<String, String> requestParamsMap, Map<String, String> responseMap) {
                showProgress(false);
                for (Map.Entry<String, String> entry : responseMap.entrySet()) {
                    String key = entry.getKey();
                    String value = entry.getValue();
                    Log.e("cancel", key + "////////" + value);
                    // do stuff
                }
            }

            @Override
            public void onSuccess(Map<String, String> requestParamsMap, Map<String, String> fortResponseMap) {
                for (Map.Entry<String, String> entry : fortResponseMap.entrySet()) {
                    String key = entry.getKey();
                    String value = entry.getValue();
                    Log.e("responsee", key + "////////" + value);
                    // do stuff
                }
            }

            @Override
            public void onFailure(Map<String, String> requestParamsMap, Map<String, String> fortResponseMap) {
                for (Map.Entry<String, String> entry : fortResponseMap.entrySet()) {
                    String key = entry.getKey();
                    String value = entry.getValue();
                    Log.e("failure", key + "////////" + value);
                    // do stuff
                }
            }
        });
    } catch (Exception ex) {
        ex.printStackTrace();
    }

最佳答案

就像在您的代码中一样,您正在使用商人_参考作为静态值,但商人_参考不应是静态的,每次作为系统当前时间(以毫秒为单位)时,它都应该是唯一值String.valueOf(System.currentTimeMillis());

您的商户标识符和访问代码值应始终与在PayFort注册时生成的相同。这些基于商户注册,并且对于每个注册用户都是唯一的。

关于android - 在Payfort付款网关中生成商家引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41548395/

10-09 00:17