Api 在react native中集成Easypaisa

Api 在react native中集成Easypaisa,api,payment-gateway,payment,payment-processing,Api,Payment Gateway,Payment,Payment Processing,我正在尝试将Easypaisa支付集成到我的应用程序中。我有一个商人帐户 这是我的密码 const requestBody = 'storeId=xxxx&amount=xx&postBackURL=xxx&orderRefNum=xx'; const requestHeader = { 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', };

我正在尝试将Easypaisa支付集成到我的应用程序中。我有一个商人帐户

这是我的密码

 const requestBody = 'storeId=xxxx&amount=xx&postBackURL=xxx&orderRefNum=xx';

 const requestHeader = {
 'Accept': 'application/json',
 'Content-Type': 'application/x-www-form-urlencoded',
 };
下面是react native webview

 <WebView
    source={{
      uri: 'https://easypay.easypaisa.com.pk/easypay/Index.jsf',
      headers: requestHeader,
      body: requestBody,
      method: 'POST',
    }}
  />

这是我面临的一个错误


我尝试过许多解决方案,但都没有成功,也没有找到任何与Easypaisa相关的解决方案或适当的文档。

为此,我使用了3个软件包

import AesJs from 'aes-js';

import { Buffer } from 'buffer';

import queryString, { stringify } from 'query-string';
解决了这个问题

//使用easypaisa HashKey在AES、ECB模式下生成字节加密

步骤1

const aes = new AesJs.ModeOfOperation.ecb(AesJs.utils.utf8.toBytes(HASH_KEY));
您可以从商户帐户生成哈希键

步骤2

pkcs5Pad

   function pkcs5Pad(text: string, blockSize: number): string {
   const pad = blockSize - (text.length % blockSize);
   return text + String.fromCharCode(pad).repeat(pad);
   }
convertObjectToString

    function convertObjectToString(obj: any): string {
    let data = '';
    Object.keys(obj)
    .sort()
    .forEach((key) => {
    data += `${key}=${obj[key]}` + '&';
    });
    return data.slice(0, data.length - 1);
    }
步骤3

//生成HashMapReq

  const hasMapReq = Buffer.from(aes.encrypt(Buffer.from(
  pkcs5Pad(convertObjectToString(requestBody), 16))))
  .toString(
  'base64',
);
将您的hashReq附加到请求主体中,然后享受