GlobalPayments HPP表单提交报错Currency CAD not allowed排查求助
问题描述
我正在学习GlobalPayments信用卡支付流程,复用其现有示例HTML结构,通过代码动态填充相关参数值,生成完整表单后推送至浏览器提交数据。
以下是Global Payments的官方示例:
以下是我脱敏处理后的动态生成表单,目前因CURRENCY参数值问题无法正常运行:
<form action="https://pay.sandbox.realexpayments.com/pay" method="POST" target="iframe"> <input type='hidden' name='TIMESTAMP' value='20210512115612' /> <input type='hidden' name='MERCHANT_ID' value='MYID' /> <input type='hidden' name='ORDER_ID' value='MYORDERID' /> <input type='hidden' name='AMOUNT' value='4000' /> <input type='hidden' name='AUTO_SETTLE_FLAG' value='1' /> <input type='hidden' name='HPP_VERSION' value='2' /> <input type='hidden' name='HPP_CHANNEL' value='ECOM' /> <input type='hidden' name='COMMENT1' value='' /> <input type='hidden' name='HPP_LANG' value='en' /> <input type='hidden' name='CURRENCY' value='CAD' /> <input type='hidden' name='HPP_CUSTOMER_EMAIL' value='test@test.com' /> <input type='hidden' name='HPP_BILLING_STREET1' value='123 Park Est ' /> <input type='hidden' name='HPP_BILLING_STREET2' value='' /> <input type='hidden' name='HPP_BILLING_STREET3' value='' /> <input type='hidden' name='HPP_BILLING_CITY' value='My City' /> <input type='hidden' name='HPP_BILLING_POSTALCODE' value='12345' /> <input type='hidden' name='HPP_BILLING_COUNTRY' value='124' /> <input type='hidden' name='HPP_CHALLENGE_REQUEST_INDICATOR' value='NO_PREFERENCE' /> <input type='hidden' name='MERCHANT_RESPONSE_URL' value='TARGET URL' /> <input type='hidden' name='SHA1HASH' value='MY HASH' /> <input type="hidden" name="CUSTOM_FIELD_NAME" value="Custom Field Data"> <input type="submit" value="Click To Pay"> </form>
每次提交该表单都会返回Currency CAD not allowed报错,即便我设置的国家为加拿大、CURRENCY参数值为CAD。我已尝试包括货币代码124在内的所有相关变体写法,均无法解决问题。目前仅存在这一个异常,恳请各位帮忙分析可能的原因,万分感谢。
解决方案
你可以按以下顺序排查问题:
- 优先确认沙箱账户的CAD结算权限是否开通:Global Payments的沙箱商户账户默认仅开通USD、EUR、GBP等少数主流货币的结算权限,CAD需要单独联系对接的技术支持或客户经理申请开通。就算参数填写完全符合规范,账户未开通对应货币权限时必然会返回该报错。
- 校验SHA1HASH生成逻辑是否正确:该平台的签名规则要求按
TIMESTAMP + MERCHANT_ID + ORDER_ID + AMOUNT + CURRENCY的固定顺序拼接参数后再做SHA1加密。如果生成签名时CURRENCY值填写错误、或者参数拼接顺序不对,就算表单中的CURRENCY参数值正确,验签失败也可能返回这类误导性报错。 - 用默认支持的货币做对照测试:你可以先把CURRENCY的值改为USD测试提交,如果USD可以正常跳转支付流程,即可直接确认是账户未开通CAD权限的问题,无需再排查参数格式类问题。
- 检查商户后台的交易限制配置:登录Global Payments商户管理后台,查看交易限制规则里是否把CAD加入了允许的交易货币列表。
内容的提问来源于stack exchange,提问作者Ayrab
相关产品推荐
相关产品推荐

