Dha*_*dra 7 android paypal paypal-ipn
我在我的Android应用程序中实现了PayPal,我希望将多个参数作为查询字符串发送到PayPal,并带有IPN URL.
例如
http://www.example.com/ipn/txnId=12&cartId=12
Run Code Online (Sandbox Code Playgroud)
但问题是当我使用此URL作为IPN URL PayPal给我一个错误.
我试过URLEncoding但再没有成功付款.
如果我尝试单个参数它是有效的.
例
http://www.example.com/ipn/txnId=12
Run Code Online (Sandbox Code Playgroud)
我遇到过,贝宝是不能接受的问题&,所以我试图替换字符串中的字符&与&和也\\&,但它并没有帮助.
我知道我可以将多个参数设置为单个变量并将其传递给PayPal,但我想传递多个参数,如查询字符串.
如何让PayPal接受多个参数的付款?
编辑
目前我正在使用此代码进行编码URL但它失败了.
protected String addLocationToUrl(String url){
if(!url.endsWith("?"))
url += "?";
List<NameValuePair> params = new LinkedList<NameValuePair>();
params.add(new BasicNameValuePair("txnId", "45"));
params.add(new BasicNameValuePair("cartId", "34"));
String paramString = URLEncodedUtils.format(params, "utf-8");
url += paramString;
return url;
}
Run Code Online (Sandbox Code Playgroud)
来自开发人员指南的第 20 页: https://cms.paypal.com/cms_content/en_US/files/developer/PP_PayflowPro_Guide.pdf
在值中使用特殊字符
由于与号 ( & ) 和等号 (=) 字符在 PARMLIST 中具有特殊含义,因此类似于以下示例的名称-值对无效:
NAME=Ruff & Johnson
COMMENT1=Level=5
要在名称-值对的值中使用特殊字符,请使用长度标签。长度标签指定值中出现的字符和空格的确切数量。以下名称-值对有效:
NAME[14]=Ruff & Johnson
COMMENT1[7]=Level=5
更新
根据我们在Android 讨论室中讨论的对话,我们发现您正在使用适用于 Android 的 Paypal Payment API。Paypal 不支持使用 Android Payment API 的 IPN 地址中的多个参数。
一种选择是将该&字符替换为在 URL 中没有特殊含义的字符。然后,当 IPN 侦听器收到单个参数值时,解析这些值,但您还必须替换后续字符=。
例如http://www.example.com/ipn/params=txnId_12-cartId_12
您声明您需要这些附加参数来进行验证,但如果要安全实施,则应按照 PayPal 的概述实施验证。
请阅读即时付款通知概述。这描述了 IPN 流程以及验证对侦听服务的 IPN 请求所需的内容。
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |