【问题标题】:generate merchant reference in payfort payment gateway在支付网关中生成商户参考
【发布时间】:2017-05-23 17:40:22
【问题描述】:

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

但也需要生成商户引用才能传递到 fort sdk。我找不到任何关于如何生成商家参考的信息,因为付款文档中没有提供任何内容。

我也和客服谈过了,他们说我们必须用我们自己的算法来创建商家参考

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

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", "bharat56@gmai.com");
    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();
    }

【问题讨论】:

  • 你能添加你到目前为止所做的代码吗?
  • 我在这里使用以前的商家参考...我从某个地方得到的但是它给出了一个错误“重复的订单号”
  • 你检查过这个testfort.payfort.com/api 吗?
  • 是的..我正在关注那个api..但是没有关于这个的部分
  • 实际上商家参考和访问代码是固定的,它们是为注册用户在支付宝上生成的。这不是商家参考的问题。

标签: android payfort


【解决方案1】:

在您的代码中,您使用的 Mercer_reference 作为静态值,但 Mercer_reference 不应该是静态的,它应该是一个唯一值,每次作为系统当前时间(以毫秒为单位) String.valueOf(System.currentTimeMillis());

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

【讨论】:

  • 是的..我在商家参考中使用当前时间,它有效..谢谢
  • 是的,答案中已经共享的链接是我的示例。需要做一些文档。如果你下载并运行它,它就像一个魅力。
  • @ReadyAndroid hi,如何生成merchant_identifier?在哪里可以找到这个值?
  • 当您在 payfort 创建项目帐户时,您将获得商家标识符和访问代码。
  • @ReadyAndroid 感谢您的回复。那些钥匙是在电子邮件上收到的吗?如果我丢失了电子邮件,那么有什么理由要找回这些密钥?
猜你喜欢
  • 2011-02-27
  • 2019-05-30
  • 2013-12-09
  • 2012-04-10
  • 2012-04-06
  • 2011-05-05
  • 2014-01-13
  • 2021-06-04
  • 2017-05-18
相关资源
最近更新 更多